【发布时间】:2014-09-07 05:52:37
【问题描述】:
我已将数据存储在列表列表中(我不能使用字典,因为我需要有重复的键)。列表如下:
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 等”)在没有电子邮件地址的情况下被保留。
【问题讨论】:
-
我不太确定您在寻找什么。你能给出一个包含边缘情况的预期输出吗?
-
@AdamSmith,如果您不知道 OP 在寻找什么,您可能不应该回答 ;)
-
@wnnmaw 当我注意到我误解了他的问题时,我几乎立即删除了,然后要求澄清;)
-
@AdamSmith 我回答了你的问题。
标签: python