正确的方法做'如果列表'python

时间:2013-10-07 00:05:28

标签: python list

我不久前自学了python,我发现自己不断地做这个逻辑......

如果listB中listA的任何元素然后等等等等......

我将其编码为:

for i in listA: 
    if i in listB:
        do something

鉴于我遇到这种情况的频率,我认为必须有一种更有效的编码方式吗?

提前致谢。

3 个答案:

答案 0 :(得分:4)

是的,any()功能:)。

if any(i in listB for i in listA):
    do something

这假设你想要{/ 1}} 一次。如果你想用"do something"实际做某事(如果它在i中),那么就像你一样使用for循环。

listB。几乎相当于:

any(i in listB for i in listA)

答案 1 :(得分:2)

目前还不清楚你是否需要为listA中的每个元素做一次或一次。

所以,如果你需要做一次,在一个集合中转换它们,看看交集是否大于0:

if (set(listA)).intersection(set(listB)):
    do something

如果您需要为每个元素执行某些操作,请跳过重复的值:

intersection = (set(listA)).intersection(set(listB))
for el in intersection:
    do something

并且,如果你需要为每个元素做一些事情,无论它是否重复:

for element in listA:
    if element in listB:
        do something

答案 2 :(得分:0)

尝试:

for i in list(set(listA).intersection(listB)):
    #do something
    pass