Вложенные списки Python - PullRequest
       8

Вложенные списки Python

10 голосов
/ 19 ноября 2011

Может кто-нибудь сказать мне, как я могу вызвать индексы во вложенном списке?

Обычно я просто пишу:

for i in range (list)

но что если у меня есть список с вложенными списками, как показано ниже:

Nlist = [[2,2,2],[3,3,3],[4,4,4]...]

а я хочу просмотреть индексы каждого отдельно?

Ответы [ 6 ]

21 голосов
/ 19 ноября 2011

Если вам действительно нужны индексы, вы можете просто сделать то, что вы сказали снова для внутреннего списка:

l = [[2,2,2],[3,3,3],[4,4,4]
for i1 in xrange(len(l)):
    for i2 in xrange(len(l[i1])):
        print i1, i2, l[i1][i2]

Но более логично перебирать весь список:

for inner_l in l:
    for item in inner_l:
        print item

Если вам действительно нужны индексы, вы также можете использовать enumerate:

for i1, inner_l in enumerate(l):
    for i2, item in enumerate(inner_l):
        print i1, i2, item, l[i1][i2]
5 голосов
/ 17 декабря 2014

Попробуйте эту настройку:

a = [["a","b","c",],["d","e"],["f","g","h"]]

Чтобы напечатать 2-й элемент в 1-м списке («b»), используйте print a[0][1] - Для 2-го элемента в 3-м списке («g»): print a[2][1]

Первые квадратные скобки ссылаются на вложенный список, к которому вы обращаетесь, вторая пара ссылается на элемент в этом списке.

2 голосов
/ 19 ноября 2011

Вы можете сделать это.Приспособьте это к своей ситуации:

  for l in Nlist:
      for item in l:
        print item
0 голосов
/ 02 октября 2018

Я думаю, что вы хотите получить доступ к списочным значениям и их индексам одновременно и по отдельности:

l = [[2,2,2],[3,3,3],[4,4,4],[5,5,5]]
l_len = len(l)
l_item_len = len(l[0])
for i in range(l_len):
    for j in range(l_item_len):
        print(f'List[{i}][{j}] : {l[i][j]}'  )
0 голосов
/ 17 мая 2018
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
  results = []
  for numbers in lists:
    for numbers2 in numbers:
        results.append(numbers2) 
  return results
print flatten(n)

Выход: n = [1,2,3,4,5,6,7,8,9]

0 голосов
/ 04 мая 2018

Название вопроса слишком широкое, а потребность автора более конкретна. В моем случае Мне нужно было извлечь все элементы из вложенного списка, как в примере ниже :

Пример:

input -> [1,2,[3,4]]
output -> [1,2,3,4]

Код ниже дает мне результат, но я хотел бы знать, может ли кто-нибудь создать более простой ответ:

def get_elements_from_nested_list(l, new_l):
    if l is not None:
        e = l[0]
        if isinstance(e, list):
            get_elements_from_nested_list(e, new_l)
        else:
            new_l.append(e)
        if len(l) > 1:
            return get_elements_from_nested_list(l[1:], new_l)
        else:
            return new_l

вызов метода

l = [1,2,[3,4]]
new_l = []

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