Jaka jest składnia wstawiania jednej listy do innej listy w Pythonie?

Podano dwie listy:

x = [1,2,3]
y = [4,5,6]

Jaka jest składnia do:

  1. wstawić x do y tak, że y teraz wygląda jak [1, 2, 3, [4, 5, 6]]?
  2. wstawić wszystkie elementy x do y tak, że y teraz wygląda jak [1, 2, 3, 4, 5, 6]?
Author: Bhargav Rao, 2010-09-20

5 answers

Masz na myśli append?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]
Czy połączyć?
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6] 
 300
Author: Paolo Bergantino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-08 22:03:20

Pytanie nie wyjaśnia, co dokładnie chcesz osiągnąć.

List posiada metodę append, która dodaje swój argument do listy:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

Istnieje również metoda extend, która dodaje pozycje z listy, którą podajesz jako argument:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

I oczywiście istnieje metoda insert, która działa podobnie do append, ale pozwala określić punkt wstawiania:

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

Aby rozszerzyć listę w określonym punkcie wstawiania, możesz użyć listy krojenie (dzięki, @ florisla):

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

Wycinanie listy jest dość elastyczne, ponieważ pozwala zastąpić zakres wpisów na liście zakresem wpisów z innej listy:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
 50
Author: Sergey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-16 03:52:09
foo = [1, 2, 3]
bar = [4, 5, 6]

foo.append(bar) --> [1, 2, 3, [4, 5, 6]]
foo.extend(bar) --> [1, 2, 3, 4, 5, 6]

Http://docs.python.org/tutorial/datastructures.html

 29
Author: Coding District,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-20 00:43:50

Możesz też po prostu to zrobić...

x += y
 2
Author: user3707850,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-19 00:59:10

Jeśli chcesz dodać elementy z listy (list2) na koniec innej listy( list), możesz użyć metody list extend

list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]

Lub jeśli chcesz połączyć dwie listy, możesz użyć znaku +

list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]
 1
Author: squal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 09:10:32