繁体   English   中英

Python for循环迭代和列表列表访问

[英]Python for loop iteration and access over a list of list

输入以下代码:

array = [[0, 2], [3, 4]]
for i in array:
    print '%d' % i[0][0]

我收到错误消息: TypeError: 'int' object has no attribute '__getitem__'

但是,如果我更改为print'%d' %i则会收到错误消息: TypeError: %d format: a number is required, not list

我应该如何遍历数组并打印每个子数组的第一个和第二个值?

谢谢

i是一维的。 因此:

 print '%d' % i[0] 

PS。 目前尚不清楚您想要的输出是什么。 此解决方案将打印每个列表的第一个元素。

array = [[0, 2], [3, 4]]
for sub_array in array:
    print sub_array[0], sub_array[1]

甚至更好:

array = [[0, 2], [3, 4]]
for sub_array in array:
    print sub_array

您要print '%d %d' % (i[0], i[1])

首先,声明for x in y环比y和及受让人x中的值y您目前循环的如y = [1, 2, 3] for x in y: print x会给输出:1因此,在您的情况下为2 3 4 array = [[0, 2], [3, 4]] for i in array: print '%d' % i[0][0] """ i is [0, 2] on the first iteration making i[0] = 0 i[0][0] -> TypeError: %d format: a number is required, not list changing this to i would obvious lead to i being a list that you're attempting to assign as a number -> TypeError: %d format: a number is required, not list """

您真正想做的是停在i[0]处编写代码: array = [[0, 2], [3, 4]] for i in array: print '%d' % i[0]

至于您的问题,如何遍历数组并打印值,那么您可以执行以下操作: array = [[0, 2], [3, 4]] for subarray in array: for element in subarray: print element

如果您想保持循环,可以执行以下操作:

array = [[0, 2], [3, 4]]
for i in array:
    print '%d' % i[0] 

暂无
暂无

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

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