Понимание списка, добавление дважды в один и тот же список не работает - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь добавить к одному списку дважды, используя понимание двух списков. Мой код выглядит следующим образом:

list_one = [1, 2, 3]
list_two = [4, 5, 6]

list_a = []
list_b = []

list_a = [ x for x in list_one ]
list_a = [ x for x in list_two ]

for i in list_one:
    list_b.append(i)

for i in list_two:
    list_b.append(i)

print(f"list_a: {list_a}")
print(f"list_b: {list_b}")

Вывод скрипта:

list_a: [4, 5, 6]
list_b: [1, 2, 3, 4, 5, 6]

Как я могу сделать все значения, добавленные в list_b, используя понимание списка?

Ответы [ 3 ]

1 голос
/ 02 апреля 2020

Поскольку вы перезаписали list_a.

Попробуйте:

list_a = []
list_a += [ x for x in list_one ]
list_a += [ x for x in list_two ]

или

list_a = []
list_a.extend(x for x in list_one)
list_a.extend(x for x in list_two)

Я предполагаю, что пример списка был упрощенный .
Если это был фактический код, вы можете просто:

list_a = list_one + list_two
0 голосов
/ 02 апреля 2020

Я думаю, это то, что вы пытаетесь сделать ...

list_one = [1, 2, 3]
list_two = [4, 5, 6]
list_one.extend(list_two)#[1, 2, 3, 4, 5, 6]
list_two=list_one##[1, 2, 3, 4, 5, 6]
0 голосов
/ 02 апреля 2020

Вы можете использовать вложенное понимание:

>>> list_b = [x for l in (list_one, list_two) for x in l]
>>> list_b
[1, 2, 3, 4, 5, 6]

или использовать утилиту типа itertools.chain или простую конкатенацию:

list_b = list(chain(list_one, list_two))
list_b = list_one + list_two
...