Cách nối nhiều giá trị vào danh sách trong Python


175

Tôi đang cố gắng tìm ra cách nối nhiều giá trị vào danh sách trong Python. Tôi biết có vài phương pháp để làm như vậy, chẳng hạn như bằng tay vào các giá trị, hoặc PUR hoạt động append trong một forvòng lặp, hay appendextendchức năng.

Tuy nhiên, tôi tự hỏi nếu có một cách gọn gàng hơn để làm như vậy? Có thể một gói hoặc chức năng nhất định?


8
Bạn đã tìm thấy các tài liệu danh sách chưa?
Martijn Pieters

5
Bạn nói rằng bạn biết có một vài phương pháp để làm như vậy , nhưng đừng chỉ ra những gì bạn đã thử hoặc giải thích lý do tại sao các phương pháp mà bạn biết đều không đủ tốt.
Vô dụng

Hãy xác định gọn gàng hơnextend() .
Frédéric Hamidi

3
@ Frédéric Hamidi more neat == additional package dependency, tất nhiên!
hexparrot

1
Làm thế nào câu hỏi này có thể được coi là lạc đề?
Victor Schröder

Câu trả lời:


352

Bạn có thể sử dụng phương thức chuỗilist.extend để mở rộng danh sách theo nhiều giá trị từ bất kỳ loại lặp nào, có thể là danh sách khác hoặc bất kỳ thứ gì khác cung cấp chuỗi giá trị.

>>> 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]

Vì vậy, bạn có thể sử dụng list.append()để nối thêm một giá trị và list.extend()nối thêm nhiều giá trị.


1
Một chút phức tạp để giới thiệu máy phát điện cho ai đó vào ngày 1 sử dụng Python.
Daniel Roseman

1
@DanielRoseman Quan điểm của tôi là các giá trị có thể đến từ bất kỳ loại trình tự lặp nào.
chọc

6
Lưu ý rằng phần mở rộng không giữ cấu trúc của phần tử bạn thêm so với append(). Với ví dụ của bạn bằng cách sử dụng chắp thêm, bạn sẽ nhận được [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia

1
@YohanObadia Nếu đó là trường hợp của Python 3 trong '17, thì đó không còn là trường hợp nữa - Python 3.7.7 thực hiện chính xác những gì poke mô tả.
Bài 169

28

Khác với appendhàm, nếu theo "nhiều giá trị", bạn có nghĩa là một danh sách khác, bạn có thể chỉ cần ghép chúng như vậy.

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

9

Nếu bạn xem các tài liệu chính thức , bạn sẽ thấy ngay bên dưới append, extend. Đó là những gì bạn đang tìm kiếm.

Cũng có itertools.chainnếu bạn quan tâm đến việc lặp lại hiệu quả hơn là kết thúc với cấu trúc dữ liệu được điền đầy đủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.