Python получает второй элемент из каждого внутреннего списка - PullRequest
0 голосов
/ 06 марта 2019

У меня есть список, который содержит внутренний список (считанный из файла, разделенного запятыми), из которого я хотел бы получить второй элемент.Например, в x = [[2,3,4][5,6,7]] я хотел бы получить 3 и 6. Простые вещи, которые, как я думал, я знал, как сделать.Я знаю, что мог бы попытаться использовать следующий метод для получения вторых чисел:

fp = open('random.txt') 
x = list(fp.read().split("\n"))
x.pop(0) #header line
x = [item.split(",") for item in x]

print([item[1] for item in x])

Моя проблема в том, что я могу получить первый элемент, выполнив item[0] в приведенном выше коде, и это прекрасно работает.Однако, если я попытаюсь item[1], я получу список ошибок из диапазона.Я попытался просто проверить, был ли мой список корректным в обычном цикле for.

for item in x:
    print(item[1])

В итоге все заработало нормально, теперь я знаю, что могу просто использовать эту вторую версию, если я действительно хочу, но мне было интереснопочему первая версия выдает эту ошибку, когда она отлично работает во второй версии?


РЕДАКТИРОВАТЬ: включены остальные мои код

1 Ответ

0 голосов
/ 06 марта 2019

Я думаю, что проблема должна быть связана с другим вашим кодом.Я просто запустил следующее:

x = [[2, 3, 4], [5, 6, 7]]
print([item[1] for item in x])

[3,6]

for item in x:
    print(item)

[2, 3, 4]

[5, 6, 7]

for item in x:
    print(item[1])

3

6

Весь размещенный вами код работает без ошибок.Вы должны изменить свой список как-то, что не опубликовано.Я предлагаю вам попробовать print(x) перед обработкой, чтобы определить, как выглядит фактическая структура, а затем обработать ее соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...