Як додати кілька значень до списку в Python


175

Я намагаюся зрозуміти, як додати кілька значень до списку в Python. Я знаю, що існує мало методів, як це зробити, наприклад, ввести значення вручну, або очистити операцію додавання в forциклі, або appendі extendфункції.

Однак мені цікаво, чи існує більш акуратний спосіб зробити це? Може бути певний пакет чи функція?


8
Ви ще знайшли документацію зі списку ?
Martijn Pieters

5
Ви сказали, що знаєте, що існує кілька методів для цього , але не показуйте те, що ви пробували, або поясніть, чому методи, які ви знаєте, алеади недостатньо хороші.
Марно

Будь ласка, визначте акуратніше, ніжextend() .
Фредерік Хаміді

3
@ FrédéricHamidi more neat == additional package dependency, звичайно!
hexparrot

1
Як це питання можна вважати поза темою?
Віктор Шредер

Відповіді:


352

Ви можете використовувати метод послідовностіlist.extend для розширення списку на кілька значень із будь-якого виду ітерабелів, будь-якого іншого списку чи будь-якої іншої речі, яка забезпечує послідовність значень.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Таким чином, ви можете використовувати list.append()для додавання одного значення та list.extend()для додавання декількох значень.


1
Трохи складне представлення генераторів комусь у перший день використання Python.
Даніель Роузмен

1
@DanielRoseman Моя думка полягає в тому, що значення можуть надходити з будь -якої ітерабельної послідовності.
ткнути

6
Зауважте, що розширення не зберігають структуру доданого вами елемента порівняно з append(). З використанням прикладу додавання ви отримаєте [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Пітон 3
Йохан Обадія

1
@YohanObadia Якщо це було так для Python 3 17 року, це вже не так - Python 3.7.7 робить саме те, що описано.
Пост169

28

Крім appendфункції, якщо під "кількома значеннями" ви маєте на увазі інший список, ви можете просто об'єднати їх так.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]

9

Якщо ви подивіться на офіційні документи , ви побачите праворуч внизу append, extend. Це те, що ти шукаєш.

Є також, itertools.chainякщо ви більше зацікавлені в ефективній ітерації, ніж закінченні повною мірою структурою даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.