Memasukkan string ke dalam daftar tanpa terpecah menjadi karakter


113

Saya baru mengenal Python dan tidak dapat menemukan cara untuk memasukkan string ke dalam daftar tanpa memisahkannya menjadi karakter individu:

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

Apa yang harus saya lakukan untuk memiliki:

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

Menelusuri dokumen dan Web, tetapi itu bukan hari saya.

Jawaban:


147

Untuk menambah akhir daftar:

list.append('foo')

Untuk memasukkan di awal:

list.insert(0, 'foo')

Saya yakin kebanyakan orang tahu ini tetapi hanya untuk menambahkan: melakukan list2 = list1.append('foo')atau list2 = list1.insert(0, 'foo') akan menghasilkan list2nilai Tidak Ada. Keduanya appenddan insertmerupakan metode yang mengubah daftar tempat mereka digunakan daripada menampilkan daftar baru.
MoltenMuffins


15

Opsi lainnya adalah menggunakan overloaded + operator:

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

1
Baru saja Anda lihat, Anda juga dapat menggunakannya untuk menambahkan di bagian akhir: l += ['foo']
Toni Homedes i Saun

6

sebaiknya letakkan tanda kurung di sekitar foo, dan gunakan + =

list+=['foo']

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

4

Jangan gunakan list sebagai nama variabel. Itu dibangun di mana Anda menutupi.

Untuk menyisipkan, gunakan fungsi sisipkan daftar.

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

Ini tidak sepenuhnya benar. insert()mengambil argumen kedua.
Rafe Kettler

@RafeKettler Ups, menambahkan adalah argumen tanpa tempat.
Spencer Rathbun


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

atau (gunakan insertfungsi di mana Anda dapat menggunakan posisi indeks dalam daftar)

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.