如何使用for循环比较2列表/数组与python?

Vog*_*ire 2 python arrays list

我想比较ListA [0]和ListB [0] ......等.

ListA = [itemA, itemB, itemC]
ListB = [true, false, true]

for item in ListA:
    if ListB[item] == True:
        print"I have this item"
Run Code Online (Sandbox Code Playgroud)

目前的问题是[item]不是数字,因此ListB [item]不起作用.如果我想做这样的事情,那么正确的方法是什么?

Ift*_*han 7

您可以通过这种方式遍历列表.

for a, b in zip(ListA, ListB):
    pass
Run Code Online (Sandbox Code Playgroud)


roo*_*oot 7

你可以使用itertools.compress:

Docstring:
compress(data, selectors) --> iterator over selected data

Return data elements corresponding to true selector elements.
Forms a shorter iterator from selected data elements using the
selectors to choose the data elements.
Run Code Online (Sandbox Code Playgroud)
In [1]: from itertools import compress

In [2]: l1 = ['a','b','c','d']

In [3]: l2 = [True, False, True,False]

In [4]: for i in compress(l1,l2):
   ...:     print 'I have item: {0}'.format(i)
   ...:     
I have item: a
I have item: c
Run Code Online (Sandbox Code Playgroud)