【问题标题】:Cannot get an index of a list item无法获取列表项的索引
【发布时间】:2019-05-24 17:53:33
【问题描述】:

我有这两个列表:

list1= [1, 3, 8, 14, 20]

list2= [1, 2, 7, 8, 14, 20]

我得到这两个列表的共同项目如下: commonItems=list(set(list1).intersection(list2))

现在随机挑选一个常见的物品为:

pick=random.sample(commonItems,1)

现在,当我尝试将上述列表之一中的拾取项目索引标识为: PickedItemIndex=list1.index(pick)

我收到了这个错误: ValueError: [8] 不在列表中

即使如您所见,第 8 项确实存在于 list1 中

有什么问题? 我是一个新的pythonic。提前谢谢你。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    发生错误是因为变量 'pick' 是一个列表。 下面的代码将运行没有错误:

    pick=random.sample(commonItems,1)
    PickedItemIndex=list1.index(pick[0])
    

    pick[0] 是列表“pick”的第一项(仅包含 1 个元素)

    【讨论】:

      【解决方案2】:

      问题是变量pick的类型是list

      您需要将int 传递给index 命令:

      In [314]: list1.index(pick[0])
      Out[314]: 4
      

      【讨论】:

      • 注意:另一种方法是使用 there is exactly one element picked to unpack it at time of selection 的知识,因此它是预期的标量值,例如[pick] = random.sample(commonItems, 1) 将立即解压生成的list,因此您可以直接使用pick,而无需此后进行索引。
      • @Paulo 既然答案有帮助,请也投赞成票。谢谢。
      猜你喜欢
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 2023-02-26
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多