Karakterlere ayrılmadan listeye bir dize ekleme


113

Python'da yeniyim ve tek tek karakterlere bölünmeden bir dizeyi listeye eklemenin bir yolunu bulamıyorum:

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

Sahip olmak için ne yapmalıyım:

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

Belgeleri ve Web'i aradım, ama benim günüm değildi.

Yanıtlar:


147

Listenin sonuna eklemek için:

list.append('foo')

Başta eklemek için:

list.insert(0, 'foo')

Eminim çoğu insan bunu biliyor ama sadece eklemek için: yapmak list2 = list1.append('foo')veya Yok değerine sahip olmakla list2 = list1.insert(0, 'foo') sonuçlanacak list2. İkisi de appendve insertyeni bir liste döndürmek yerine kullanıldıkları listeyi değiştiren yöntemlerdir.
MoltenMuffins


15

Başka bir seçenek de aşırı yüklenmiş kullanmaktır + operator:

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

1
Sonuna eklemek için de kullanabileceğinizi gördük: l += ['foo']
Toni Homedes i Saun

6

en iyisi parantezleri foo'nun etrafına koyun ve + =

list+=['foo']

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

4

Listeyi değişken adı olarak kullanmayın. Maskelediğiniz yerleşik bir şeydir.

Eklemek için listelerin ekleme işlevini kullanın.

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

Bu tam olarak doğru değil. insert()ikinci bir argüman alır.
Rafe Kettler

@RafeKettler Whoops, append, yer argümanı olmayan olandır.
Spencer Rathbun


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

veya ( insertlistedeki dizin konumunu kullanabileceğiniz işlevi kullanın)

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.