Как перебрать список списков, найдя значение в той же позиции индекса? - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть список списков, содержащих информацию о приложениях для смартфонов. Каждый список (в списке) содержит информацию одного и того же типа в том же порядке. [id, name, ..., ].

Список списков выглядит так: [[id1, name1,...], [id2, name2, ...]]

Я хочу получить доступ к десятому индексу в каждом списке и проверить его значение.

Я пробовал это, но это не работает. Я предполагал, что это будет перебирать каждый список, кроме первого, который является заголовком, и будет выбирать 10-й элемент в каждом списке.

for c_rating in apps_data[1:][10]:
    print(c_rating)

Вместо этого он распечатывает каждый элемент в 10-м списке.

Данное решение:

for row in apps_data[1:]:
    c_rating = row[10]
    print(c_rating)

Я понимаю, почему этот код работает. Это разбивает процесс на два этапа. Я не понимаю, почему первый код не работает. Любая помощь будет оценена.

1 Ответ

1 голос
/ 03 апреля 2019

Это связано с порядком вычисления выражения python.apps_data[1:][10] оценивается в следующем порядке:

  • apps_data[1:] -> это дает список внутренних списков со всеми, кроме первого внутреннего списка.Давайте назовем это inner_lists

  • inner_lists[10] -> это даст вам 10-й элемент из этого списка списков.Который дает вам один из этих внутренних списков.

Таким образом, вы получаете выбор + выбор

То, что вы хотите, это итерация + выбор.Вы можете сделать это следующим образом:

[print(x[10]) for x in apps_data]

Он проходит по всем внутренним спискам, выбирает 10-й элемент из каждого и печатает его.

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