Python 无法获取列表项的索引
我有两份清单:Python 无法获取列表项的索引,python,python-3.x,Python,Python 3.x,我有两份清单: list1=[1,3,8,14,20] list2=[1,2,7,8,14,20] 我获得了这两个列表之间的常见项,如下所示: commonItems=列表(集合(列表1).交叉点(列表2)) 现在随机挑选一个常见项目,如下所示: pick=random.sample(commonItems,1) 现在,当我尝试在上面的列表中识别拾取的项目索引时,如下所示: PickedItemIndex=list1.index(pick) 我得到了这个错误: ValueError:[8]不在列
list1=[1,3,8,14,20]
list2=[1,2,7,8,14,20]
我获得了这两个列表之间的常见项,如下所示:
commonItems=列表(集合(列表1).交叉点(列表2))
现在随机挑选一个常见项目,如下所示:
pick=random.sample(commonItems,1)
现在,当我尝试在上面的列表中识别拾取的项目索引时,如下所示:
PickedItemIndex=list1.index(pick)
我得到了这个错误:
ValueError:[8]不在列表中
即使如您所见,列表1中确实存在第8项
有什么问题?
我是一个新的蟒蛇。提前感谢。发生错误是因为变量“pick”是一个列表。 下面的代码将无错误地运行:
pick=random.sample(commonItems,1)
PickedItemIndex=list1.index(pick[0])
pick[0]是列表“pick”(仅包含1个元素)的第一项。由于变量“pick”是一个列表,因此发生错误。 下面的代码将无错误地运行:
pick=random.sample(commonItems,1)
PickedItemIndex=list1.index(pick[0])
pick[0]是列表“pick”(仅包含1个元素)的第一项。问题在于变量
pick
的类型是一个列表
您需要将int
传递给index
命令:
In [314]: list1.index(pick[0])
Out[314]: 4
问题是变量的类型pick
是一个列表
您需要将int
传递给index
命令:
In [314]: list1.index(pick[0])
Out[314]: 4
注意:另一种方法是使用这样的知识,即它是预期的标量值,例如[pick]=random。sample(commonItems,1)
将立即解压生成的列表
,因此您可以直接使用pick
,此后无需索引。@Paulo由于答案有帮助,请也进行投票。谢谢。注意:另一种方法是使用这样的知识,即它是预期的标量值,例如[pick]=random。sample(commonItems,1)
将立即解压生成的列表
,因此您可以直接使用pick
,而无需索引。@Paulo由于答案有帮助,请也进行投票。谢谢