如果每个列表中的项目?

时间:2013-11-02 18:00:26

标签: python

如何判断每个列表中是否包含字符串?例如:

listEven = ["0", "2", "4", "6", "8"]
listOdd = ["1", "3", "5", "7", "9"]
listPrimes = ["2", "3", "5", "7"]

listOfLists = ["listOdd", "listPrimes"]
if "9" in each(listOfLists):
    print("Math is broken")
else:
    print("Good, 9 is still not prime")

基本上,是否有一个函数可以检查列表列表中的每个列表中是否存在某些内容?

3 个答案:

答案 0 :(得分:4)

首先,不要在这里使用引号。而是将列表列表声明为:

listOfLists = [listOdd, listPrimes]

也许最好使用整数而不是字符串作为列表元素(即3而不是"3")。

要回答您的问题,您可以使用all()

if all("9" in l for l in listOfLists):

答案 1 :(得分:0)

我认为这可能是达到你要求的方式:

listEven = ["0", "2", "4", "6", "8"]
listOdd = ["1", "3", "5", "7", "9"]
listPrimes = ["2", "3", "5", "7"]

listOfLists = [listEven, listOdd, listPrimes]

def findNumber(number, list):
    for lists in list:    
        if number in lists:
            print ('Found it')

findNumber('9', listOfLists)

答案 2 :(得分:0)

在这种情况下处理列表清单是一件痛苦的事情。最简单的方法是简单地将所需的列表合并为一个:

masterList = listOdd + listPrimes

然后它只是:

if number in masterList:

现在,由于某些数字是重复的,因此使用更多内存并且速度比它需要的慢,并且Python必须查看每个项目。因此,请使用集合:

masterSet = set(listOdd) | set(listPrimes)

然后if number in masterSet非常快。