【发布时间】:2016-06-14 22:03:58
【问题描述】:
我有一个for 循环,它将字符串列表中每个元素的子字符串与另一个字符串列表中的元素进行比较。
mylist = []
for x in list1:
mat = False
for y in list2:
if x[:-14] in y:
mat = True
if not mat:
mylist.append(x)
但是我想把它放在一个列表理解中(对于我的口味来说,for 循环并不简洁)但是找不到通过计算 mat 来实现它的方法。
我尝试过以下方面的变化:
mylist = [x for x in list1 if x[:-14] in list2]
但这与原始循环的逻辑不同。有没有办法将原来的 for 循环改造成列表理解?
【问题讨论】:
-
不,这不是转换服务。如果您自己尝试过并且卡在某个地方,请提供minimal reproducible example。另请注意,并非所有
for循环都可以成为列表推导。 -
我已经删除了前言,因为元内容不属于问题,人们可以否决他们是否给你一个答案/一个链接。这根本不是“很明显这是一个问题,因此它可以应用于更广泛的问题”,您确实要求转换您的一个示例 ,无需任何明显的代表您自己的努力。
-
尝试自己做,如果遇到问题,请返回这里 :)
-
@MartinP 所说的。您不必提供“指向所有其他事物的链接”,但到目前为止,您的研究的编辑要点会很好。 “我至少花了大概 30 分钟” - 哦,整个……呃,半小时?见meta.stackoverflow.com/q/261592/3001761
-
“为我做[任务]”的帖子通常很不受欢迎,就像不给你投反对票的命令一样。这是一个问答网站;如果你需要帮助,你应该提出问题。 (不过,Meta 的答案很糟糕。)
标签: python list list-comprehension