gpt4 book ai didi

python - 从列表列表中删除特定短语

转载 作者:行者123 更新时间:2023-12-01 05:07:15 28 4
gpt4 key购买 nike

我已将数据存储在列表列表中(我无法使用字典,因为我需要有重复的键)。列表如下:

data = [[1, "name email@email.com address"], [2, "name2 email@@email2.com address"], ...]

我的目标是从数据列表(即列表列表)中删除电子邮件地址。不幸的是,这些电子邮件地址都不同。它们只有一个共同特征:都包含符号“@”。

我尝试使用列表理解。但是,我只能这样做,以便删除整个元素,即“名称 email@email.com 地址”被完全删除:

newlist = [element for element in data.split() if "@" not in elment]

我考虑使用“”作为分隔符将“名称 email@email.com 地址”拆分为子列表。然而,这也带来了一个问题:它破坏了格式。对我来说,将列表分组到初始格式会很困难,因为有时“姓名 email@email.com 地址”包含三个以上的单词。例如,它可以是“name1 name2 name3 email@email.com email2 email3 address1 address2 address3”。

最好的方法是什么?

编辑:

为了回答亚当·斯密的问题,我正在寻找

data = [[1, "name address"], [2, "name2 address"], ...]

作为我的输出。换句话说,保留原始格式(列表的列表,其中子列表包含两个元素,一个是数字,另一个是“姓名、地址、地址1等”),但不包含电子邮件地址。

最佳答案

data = [[1, "name email@email.com address"], [2, "name2 email@@email2.com address"],[3, "name1 name2 name3 email@email.com email2 email3 address1 address2 address3"]]

for ind,d in enumerate(data):
data[ind]=[d[0]," ".join([x for x in d[1].split() if "@" not in x])] # add the int first then change elements from index 1.
print data

[[1, 'name address'], [2, 'name2 address'], [3, 'name1 name2 name3 email2 email3 address1 address2 address3']]

关于python - 从列表列表中删除特定短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com