0

如何确定字符串是否在每个列表列表中?例如:

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")

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

4

3 回答 3

4

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

listOfLists = [listOdd, listPrimes]

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

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

if all("9" in l for l in listOfLists):
于 2013-11-02T18:02:42.903 回答
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)
于 2013-11-02T18:50:22.663 回答
0

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

masterList = listOdd + listPrimes

那么它只是:

if number in masterList:

现在,这使用了更多的内存并且比它需要的速度慢,因为一些数字是重复的,Python 必须查看每个项目。因此,改为使用一组:

masterSet = set(listOdd) | set(listPrimes)

然后if number in masterSet很快。

于 2013-11-02T19:25:45.830 回答