Как привести набор в список в список в Python? - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу привести набор в список к списку, как показано ниже.

before: [(1, 1, 1), (1, 1, 0), (1, 0, 1)]
after: [[1, 1, 1], [1, 1, 0], [1, 0, 1]]

Мне нужен максимально простой код.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Давайте определим «до» как переменную с именем «массив».Затем мы возьмем цикл for «массива» при приведении каждого элемента к списку.

array = [(1,1,1), (1,1,0), (1,0,1)]
casted_array = []
for tuples in array:
    casted_array.append(list(tuples))

Есть несколько более простых способов сделать это, но их сложнее понять.Объяснение: Вы определяете список [(1,1,1), (1,1,0), (1,0,1)] как переменную, а затем определяете «фиктивную» переменную с именем «casted_array».Затем вы перебираете элементы в переменной «array», сохраняя их в итерационной переменной «tuples».Каждый раз, когда цикл повторяется, наборы / кортежи преобразуются в списки, а затем добавляются в переменную «casted_array».Приведенный набор / кортеж теперь сохраняется в переменной "casted_array".

0 голосов
/ 23 ноября 2018
>>> x = [(1, 1, 1), (1, 1, 0), (1, 0, 1)]
>>> list(map(list, x))
[[1, 1, 1], [1, 1, 0], [1, 0, 1]]

Пояснение

map(list, x) принимает итерацию x и применяет функцию list к каждому элементу этой итерации.Таким образом, кортеж (1, 1, 1) становится списком [1, 1, 1], (1, 1, 0) становится [1, 1, 0], а (1, 0, 1) становится [1, 0, 1].

Эти списки затем сохраняются в объекте map (предполагается, что Python 3.Икс).Объект map является итератором, который можно преобразовать в список, вызвав для него list, как показано выше.Тем не менее, часто вам не нужно делать это явное преобразование, потому что итератор позволяет вам проходить элементы напрямую:

>>> for elem in map(list, x):
...     print(elem)
...
[1, 1, 1]
[1, 1, 0]
[1, 0, 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...