Python: возможно ли использовать понимание списка в объявлении списка? - PullRequest
0 голосов
/ 28 января 2019

Допустим, у меня есть список:

t = ["3", "4", "5"]

Возможно ли включить этот список в другой, используя понимание списка?
т.е.:

t2 = ["1", "2", x for x in t, "6", "7"]

с результатом:

["1", "2", "3", "4", "5", "6", "7"]

1 Ответ

0 голосов
/ 28 января 2019

Да, это возможно при распаковке по звездам.

Учтите,

[1, 2, *[3, 4, 5], 6, 7]

это распаковывает список [3, 4, 5] во внешний список из-за *.

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


Т.е.

t = ["3", "4", "5"]
t2 = ["1", "2", *[x for x in t], "6", "7"]
#["1", "2", "3", "4", "5", "6", "7"]

Обратите внимание, что в версиях Python < 3.5, итеративныйраспаковка не реализована.

Поэтому в качестве альтернативы вы можете использовать базовую конкатенацию с оператором +:

t2 = ["1", "2"] + [x for x in t] + ["6", "7"]
...