-1

我有一个随机数列表。我想知道该列表中的数字是否在另一个列表中。

出于某种原因它告诉我“列表索引必须是整数,而不是列表”

我知道 int 与列表中的 int 不同。我只是不确定如何查看它们是否相同。

非常感谢如何将 int 与列表中的数字进行比较的示例。我已经浏览过这里和不同的网站,但我遇到的所有例子都没有帮助我;那个,或者我只是不明白他们的解决方案。

再次感谢。

编辑:

这是我的“列表中的数字”部分的代码,但它仍然出现同样的错误。

b = []

for i in range(len(a)):  #goes through the list of numbers
    for j in (i, range(len(a))):    #checks if the first numbers appears again
        for q in (0, range(len(b))):  #checks if that number is in the 
            if (a[i] == a[j] and a[i] in b == true):  #the second list 
                b.append(a[i])
            else:
                continue
return b

我在第一个if声明中遇到错误

编辑2: import random a = [ random.randrange(20) for _ in range(20) ]

所以 a 是一个随机整数列表

我有一个名为 unique 的函数,我调用unique(a)

这是我得到的确切错误:

随机导入

a = [ random.randrange(20) for _ in range(20) ]

独特的(一)

回溯(最近一次通话最后):

文件“”,第 1 行,在

文件“a5.py”,第 8 行,唯一

if (a[i] == a[j] and temp in b == true):

TypeError:列表索引必须是整数,而不是列表

4

1 回答 1

1

如果您想找出一个数字是否在数字列表中,只需执行以下操作:

>>> list_of_numbers = [10, 20, 30, 40]
>>> number = 20
>>> number in list_of_numbers
True

如果您想知道在列表中的位置,请使用index

>>> list_of_numbers.index(number)
1
>>> list_of_numbers[1]
20

如果您想知道它出现在列表中的所有位置,则必须编写显式循环语句或理解:

>>> list_of_numbers = [10, 20, 30, 10, 20, 30]
>>> [index for index, element in list_of_numbers if element == number]
1, 5

如果您想知道一个列表中的任何数字是否也在另一个列表中,请执行以下操作:

>>> other_list = [1, 10, 100, 1000]
>>> set(other_list).intersection(list_of_numbers)
{10}

如果您想知道一个列表中有多少个数字在另一个列表中:

>>> other_list = [1, 10, 100, 1000]
>>> len(set(other_list).intersection(list_of_numbers))
1

如果您想知道数字 23 是否出现在您拥有的每个列表中,您需要减少海洛因(如果您 == 'William S. Burroughs')或减少糟糕的电影角色(如果您 == 'Jim Carrey') .

于 2013-10-15T23:43:18.620 回答