Python'daki bir listeye birden çok değer ekleme


176

Nasıl Python bir listeye birden çok değer eklemek için anlamaya çalışıyorum. Ben manuel olarak değerleri girmek, ya da bir fordöngüde append işlemi pur appendve gibi extendfonksiyonları yapmak için birkaç yöntem olduğunu biliyorum .

Ancak, bunun daha temiz bir yolu olup olmadığını merak ediyorum? Belki belirli bir paket veya fonksiyon?


8
Eğer buldunuz mu liste belgelerine henüz?
Martijn Pieters

5
Bunu yapmak için birkaç yöntem olduğunu bildiğinizi söylediniz , ama ne denediğinizi göstermeyin ya da bildiğiniz yöntemlerin neden yeterince iyi olmadığını açıklayın.
Yararsız

Lütfen daha düzgünextend() tanımlayın .
Frédéric Hamidi

3
@ FrédéricHamidi more neat == additional package dependency, elbette!
hexparrot

1
Bu soru konu dışı olarak nasıl değerlendirilebilir?
Victor Schröder

Yanıtlar:


353

Listeyi, başka bir liste veya bir değer dizisi sağlayan herhangi bir şey olmak üzere, her türlü yinelenebilir öğeden birden çok değere göre genişletmek için dizi yönteminilist.extend kullanabilirsiniz .

>>> 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]

Böylece , tek bir değer eklemek ve birden çok değer list.append()eklemek için kullanabilirsiniz .list.extend()


1
Python'un 1. gününde jeneratörleri birine tanıtmak biraz karmaşık.
Daniel Roseman

1
@DanielRoseman Demek istediğim, değerler her türlü yinelenebilir sekanstan gelebilir .
poke

6
Uzatmanın, eklediğiniz öğenin yapısına kıyasla olmadığını unutmayın append(). Append kullanarak örneğinizle, elde edersiniz [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia

1
@YohanObadia '17'de Python 3 için durum buysa, artık durum böyle değil - Python 3.7.7 tam olarak tarif edilen şeyi yapıyor.
Post169

28

appendİşlev dışında, "birden çok değer" ile başka bir liste kastediyorsanız, bunları bu şekilde birleştirebilirsiniz.

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

9

Eğer bir göz atacak olursak resmi dokümanlar , doğru Aşağıda göreceğiniz append, extend. Aradığın şey bu.

Ayrıca itertools.chain, tamamen yinelenen bir veri yapısı ile sonuçlanmaktan daha verimli yineleme ile ilgileniyorsanız da var .

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.