combined = []
for num1 in yolist:
for num2 in dislist:
if(list[num1]==list2[num2]):
combined.apend(list[num1])
因此,我试图编写一个程序来检查两个列表之间的通用值,然后将这些值添加到新列表中,由于某种原因,这不起作用。它显示“ IndexError:列表索引超出范围”。
较短的变体是
combined = [y for y in yolist if y in dislist]
您要遍历值本身,而不是索引。因此,您需要:
combined = []
for num1 in yolist:
for num2 in dislist:
if num1==num2:
combined.append(num1)
如何解决:
combined = []
for num1 in yolist:
for num2 in dislist:
if(num1==num2):
combined.apend(list[num1])
for num1 in yolist
将迭代list
元素。要遍历list
索引,应使用range
函数,并遍历元素和索引,应使用enumerate
函数。
示例:
元素:
for element in yolist:
pass
索引:
for i in range(len(yolist)):
pass
元素和索引:
for i, element in enumerate(yolist):
pass
我认为您应该只循环一个列表,然后检查另一个列表中该条目的存在。像这样:
组合= []对于l1中的num1:如果l1中的num1:Combined.append(num1)
for num1 in yolist
时,num1
遍历列表。它不是实际的列表项,而不是列表项的索引。一种更有效的方法:
combined = []
for num1 in yolist:
if num1 in dislist and num1 not in combined:
combined.appened(num1)