有谁知道为什么这不起作用? - > [cp_props [X]] [1]

时间:2017-09-10 18:00:54

标签: python

这段代码不起作用,我得到" IndexError:list index超出范围"错误,但不知道为什么,任何人都知道为什么这不起作用?感谢。

 print([cp_props[x]][1])

它应该获取列表中项目的名称,这是anothert列表的名称,然后打开该列表中的第2个元素???

好的,现在它的工作原理如下:

 globals()[cp_props[x]][1]

但还有其他更简单的方法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

[cp_props[x]]是一个单元素列表。它唯一的元素是cp_props[x],无论它是什么。这是元素编号0.没有元素编号1,这就是选择表达式[1]失败的原因。

表达式globals()[cp_props[x]][1]具有完全不同的含义。从左到右阅读:

  1. globals()是全局变量列表。
  2. globals()[cp_props[x]]是该列表中的一个选择 - 即一些全局变量。
  3. globals()[cp_props[x]][1] 全局变量的第二个元素。