【发布时间】:2018-06-14 00:44:53
【问题描述】:
我有两个列表:
a = ['eggs', 'eggs', 'spam', 'ham', 'eggs']
和:
b = ['e', 'e']
我希望能够从列表 a 中删除鸡蛋。 根据列表 b 中的 e。 所以我理想的输出是:
a = ['spam', 'ham', 'eggs']
由于列表 a 中只有 2 个 e。
我试过了:
[a.remove('eggs') for e in b if e =='e' for eggs in a if eggs=='eggs']
问题在于这种列表理解会删除所有鸡蛋。 告诉我pythonic的方式!
【问题讨论】:
-
你能解释一下你的逻辑吗?您是否要删除
a中以“e”开头的前两项?列表b是否总是由单个字母n 次组成? -
@jpp 列表 b 中有两个 e,所以我想删除列表 a 中的“鸡蛋”,具体取决于列表 b 中有多少个 e
-
@D.Vidal jpp 更紧迫的问题是 - 这些
'e's 完全是任意字符串吗?出于某种原因,您只关心'eggs'?或者它们是否匹配'eggs'中的第一个字符?您的问题陈述相当模糊。 -
@miradulo 是的,这些都是任意的
标签: python-3.x for-loop if-statement list-comprehension