Как распаковать кортеж из списков - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь распаковать элементы списка, который упакован в кортеж.

myTuple = (['a', 'list', 'of', 'strings'], ['inside', 'a', 'tuple'], ['extra', 'words', 'for', 'filler'])

Так, например, я хочу получить этот элемент ('a')

Я пробовал это:

for (i, words) in list(enumerate(myTuple)):
    print(words)

Но это возвращает список как этот

['a', 'list', 'of', 'strings']
['inside', 'a', 'tuple']
etc...

Как я могу получить элементы внутри списка?

Ответы [ 3 ]

1 голос
/ 24 марта 2019

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

myTuple[0][0]

Если вы хотите перебрать все элементы в списках, вы можете использовать chain форму метода itertools,Например:

from itertools import chain

for i in chain(*myTuple):
    print(i)
0 голосов
/ 24 марта 2019

Вы можете использовать reduce, например. с NumPy

from functools import reduce
reduce(append, myTuple)

Out[149]: 
array(['a', 'list', 'of', 'strings', 'inside', 'a', 'tuple', 'extra',
       'words', 'for', 'filler'], dtype='<U7')

Или, база

import operator
from functools import reduce
reduce(operator.add, myType, [])
# or, reduce(lambda x, y: x + y, myTuple)

reduce - это классическая функция работы со списком вместе с map, filter и т. Д. Она принимает начальное значение, здесь пустой список, и последовательно применяет функцию (append) к каждому элементу последовательность (myTuple).

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

В настоящее время вы просто перебираете весь цикл и распечатываете элементы, содержащиеся в списке.

Однако, если вы хотите получить доступ к определенному элементу в списке, просто обратитесь к нему по имени, используя .index ()

В качестве альтернативы вы можете просто напечатать (список (указатель))

...