Chèn một chuỗi vào danh sách mà không bị tách thành các ký tự


113

Tôi là người mới làm quen với Python và không thể tìm cách chèn một chuỗi vào danh sách mà nó không được chia thành các ký tự riêng lẻ:

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

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

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

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

Câu trả lời:


147

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

list.append('foo')

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

list.insert(0, 'foo')

Tôi chắc rằng hầu hết mọi người đều biết điều này nhưng chỉ cần nói thêm: đang làm list2 = list1.append('foo')hoặc list2 = list1.insert(0, 'foo') sẽ dẫn đến list2giá trị là Không. Cả hai appendinsertđều là các phương pháp thay đổi danh sách mà chúng được sử dụng thay vì trả về một danh sách mới.
MoltenMuffins


15

Một tùy chọn khác đang sử dụng quá tải + operator:

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

1
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 file: l += ['foo']
Toni Homedes i Saun

6

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

list+=['foo']

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

4

Không sử dụng danh sách như một tên biến. Nó được tích hợp sẵn mà bạn đang che giấu.

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

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

Điều này không hoàn toàn chính xác. insert()có lập luận thứ hai.
Rafe Kettler

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


0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

hoặc (sử dụng inserthàm mà bạn có thể sử dụng vị trí chỉ mục trong danh sách)

ls.insert(0,'python')
print(ls)
['python', 'hello', 'world']

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.