[英]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.