2011-11-23 33 views
75

Tôi mới đến Python và không thể tìm thấy một cách để chèn một chuỗi thành một danh sách mà không có nó bị chia thành nhân vật cá nhân:Chèn một chuỗi thành một danh sách mà không bị chia thành nhân vật

>>> list=['hello','world'] 
>>> list 
['hello', 'world'] 
>>> list[:0]='foo' 
>>> list 
['f', 'o', 'o', 'hello', 'world'] 

gì nên làm gì để có:

['foo', 'hello', 'world'] 

Tìm kiếm tài liệu và Web, nhưng nó không phải là ngày của tôi.

Trả lời

100

Để thêm vào cuối danh sách:

list.append('foo') 

Để chèn vào đầu:

list.insert(0, 'foo') 
+0

Thật tuyệt vời, cảm ơn rất nhiều! –

3

Không sử dụng danh sách làm tên biến. Nó được xây dựng trong đó bạn đang che mặt nạ.

Để chèn, hãy sử dụng chức năng chèn của danh sách.

l = ['hello','world'] 
l.insert(0, 'foo') 
print l 
['foo', 'hello', 'world'] 
+0

Điều này không hoàn toàn chính xác. 'insert()' nhận một đối số thứ hai. –

+0

@RafeKettler Rất tiếc, nối thêm là không có đối số địa điểm. –

5
>>> li = ['aaa', 'bbb'] 
>>> li.insert(0, 'wow!') 
>>> li 
['wow!', 'aaa', 'bbb'] 
2

Bạn cần phải thêm một danh sách khác:

list[:0]=['foo'] 
14

Gắn bó với các phương pháp mà bạn đang sử dụng để chèn nó, sử dụng

list[:0] = ['foo'] 

http://docs.python.org/release/2.6.6/library/stdtypes.html#mutable-sequence-types

+0

Chèn phân bổ lát này nhanh hơn list.insert của Raffe Kettler(). Xem [Nối cột vào mảng 2 chiều] (http://stackoverflow.com/questions/12537417/append-a-column-to-a-2-dimensional-array). Không phải là nó thường là vấn đề. – ChaimG

9

Một lựa chọn khác là sử dụng quá tải + operator:

>>> l = ['hello','world'] 
>>> l = ['foo'] + l 
>>> l 
['foo', 'hello', 'world'] 
+0

Chỉ cần nhìn thấy bạn cũng có thể sử dụng nó để nối thêm vào cuối: 'l + = ['foo']' –

2

ngoặc đặt tốt nhất xung quanh foo, và sử dụng + =

list+=['foo'] 
Các vấn đề liên quan