Python разложить список - PullRequest
7 голосов
/ 12 июня 2011

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

, например

[[1],[2],[3]]

, применив этот оператор, вы получите

[1], [2], [3]

что это за оператор, любая помощь будет оценена.

Ответы [ 4 ]

13 голосов
/ 12 июня 2011

Если вы хотите передать список аргументов функции, вы можете использовать *, оператор splat. Вот как это работает:

list = [1, 2, 3]
function_that_takes_3_arguments(*list)

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

a, b, c = list # a=1, b=2, c=3
2 голосов
/ 12 июня 2011

Вы можете использовать функцию tuple для преобразования списка в кортеж.Кортеж с тремя элементами на самом деле ничем не отличается от трех отдельных элементов, но он дает удобный способ работать со всеми тремя вместе.

li = [[1], [2], [3]]
a, b, c = tuple(li)
print a  # [1]
1 голос
/ 12 июня 2011

Правильный ответ на вопрос ОП: «что это за оператор», который преобразует список [[1],[2],[3]] в [1], [2], [3], равен tuple(), поскольку [1], [2], [3] является кортежем. Встроенная функция tuple преобразует любую последовательность или итерацию в кортеж, хотя это редко требуется, поскольку, как уже указывалось, распаковка списка так же проста, как распаковка кортежа:

a, b, c = [[1],[2],[3]]

дает тот же результат, что и

a, b, c = tuple([[1],[2],[3]])

Возможно, это не то, чего хотел ОП, но это правильный ответ на заданный вопрос.

0 голосов
/ 12 июня 2011

Этого можно достичь, запустив sum(list_name,[]), как указано здесь .

Вы также можете найти этот вопрос в сведении мелких списков актуально.

...