正如标题所述,我想知道如何使用" list comprehension"缩短这个for循环。循环功能正常;但是,赋予我的赋值的细节表明我应该至少有一个列表理解,这是我的代码中唯一的for循环。顺便说一下,我对python很新。
z=0
for elements in a
if a[z] in c:
z=z+1
elif a[z] in b:
c.append(a[z])
z=z+1
else:
z=z+1
此外,如果有任何一般性提示可以缩短这一点,那将非常感激。
答案 0 :(得分:1)
我假设你想要的是从a
中获取元素,如果c
中存在这些元素,则将它们放在b
中。此外,您还要确保c
中只有一个此类元素退出,这意味着c
是一个集合。
你可以这样做
>>> a = [1, 3, 5, 7, 3]
>>> b = [3, 5]
>>> set([ i for i in a if i in b ])
set([3, 5])