繁体   English   中英

TypeError:“ int”对象没有属性“ __getitem __”(简单问题)

[英]TypeError: 'int' object has no attribute '__getitem__' (simple issue)

我是Python的新手,并且在我的一小段代码中苦苦挣扎,我只是不明白为什么它不起作用。

我有一个列表列表,每个列表包含3个数字。 我想检查某些列表的前两个数字是否相同。 为什么不起作用? 我应该怎么做才能使其正常工作?

list=[[0, 4, 0], [1, 4, 0], [0, 3, 1], [0, 4, 1]]

sorted(list)

for i in range(len(list)-1):
  if list[i][0][1] == list[i+1][0][1]:
      print "overlap"

您正在尝试访问您的矩阵,就好像它是3维矩阵,但是它是2维矩阵。

删除索引之一:

list=[[0, 4, 0], [1, 4, 0], [0, 3, 1], [0, 4, 1]]

sorted(list)

for i in range(len(list)-1):
    if list[i][0:2] == list[i + 1][0:2]:
        print "overlap"

正如@Dunes指出的那样,slice运算符使您可以比较列表中的必需项(查看python slice表示法以了解详细信息)。

您不需要额外的[1]

list[i]访问内部列表,例如[0, 4, 0]

list[i][0]访问该列表的第一个元素:例如0

另外,请勿使用内置名称作为变量的名称,因为内置名称(在我们的示例中为list )将不再可使用该名称访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM