2016-05-09 4 views
1

Дайте код ниже:Python для итерации цикла и доступа по списку списка

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

Как я должен проходить цикл через массив и печатать первое и второе значение каждого вспомогательного массива?

Благодаря

+2

«i» - это элемент в 'array', поэтому (в данном случае) он может иметь только один индекс. BTW, 'array' - это имя стандартного библиотечного модуля, поэтому плохой выбор для имени переменной. – cdarke

ответ

2
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 
2

i является 1-мерным. Поэтому:

print '%d' % i[0] 

PS. Не совсем ясно, каков ваш желаемый результат. Это решение напечатает первый элемент каждого списка.

0

Если вы хотите сохранить свой цикл, вы можете сделать:

array = [[0, 2], [3, 4]] 
for i in array: 
    print '%d' % i[0] 
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

Смежные вопросы