2013-11-25 63 views
49

Tôi đang cố gắng tìm hiểu cách thêm nhiều giá trị vào danh sách bằng Python. Tôi biết có rất ít phương pháp để làm như vậy, chẳng hạn như nhập thủ công các giá trị hoặc tinh chỉnh hoạt động nối thêm trong một vòng lặp for hoặc appendextend.Cách thêm nhiều giá trị vào danh sách trong Python

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

Tôi là ngày 1 đến Python, vì vậy hãy tha thứ cho tôi nếu tôi hỏi câu hỏi ngây thơ.

Cảm ơn bạn rất nhiều. :)

+8

Bạn đã tìm thấy [tài liệu danh sách] (http://docs.python.org/2/library/stdtypes.html#mutable-sequence-types) chưa? –

+4

Bạn đã nói bạn biết rằng có một vài phương pháp để thực hiện điều đó, nhưng không hiển thị 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 là không đủ tốt. – Useless

+0

Vui lòng xác định * gọn gàng hơn 'extend()' *. –

Trả lời

118

Bạn có thể sử dụng sequence method list.extend để mở rộng danh sách theo nhiều giá trị từ bất kỳ loại có thể lặp nào, là danh sách khác hoặc bất kỳ thứ gì khác cung cấp một 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ị duy nhất, 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. –

+0

@DanielRoseman Điểm của tôi là các giá trị có thể đến từ * bất kỳ * loại chuỗi có thể lặp lại nào. – poke

+1

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

6

Khác với chức năng append, 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 nối chúng như vậy.

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

Nếu bạn có một cái nhìn tại official docs, bạn sẽ thấy ngay phía dưới append, extend. Đó là những gì bạn đang tìm kiếm.

Ngoài ra còn có itertools.chain nế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 đủ.

Các vấn đề liên quan