25 Soru: Python'da iki listeyi nasıl birleştiririm?

tarafından oluşturulan soru Sun, Mar 17, 2019 12:00 AM

Python'da iki listeyi nasıl birleştiririm?

Örnek:

 
listone = [1, 2, 3]
listtwo = [4, 5, 6]

Beklenen sonuç:

 
>>> joinedlist
[1, 2, 3, 4, 5, 6]
    
2072
  1. Basitçe eklemek mı yoksa iki listeyi sıralı düzende birleştirmek mi istiyorsunuz ? [1,3,6] ve [2,4,5] için ne gibi bir çıktı bekliyorsunuz? Her iki listenin de sıralı olduğunu varsayabiliriz (örneğinizde olduğu gibi)?
    2015-09-12 07: 51: 44Z
  2. @ LenarHoyt Doğru. Birleştirme, en azından en azından bir tür keyfi veya ilişkisel sıralama anlamına gelir.
    2017-08-04 23: 08: 24Z
25 Yanıtlar                              25                         

+ işlecini birleştirmek için kullanabilirsiniz:

 
listone = [1,2,3]
listtwo = [4,5,6]

joinedlist = listone + listtwo

Çıktı:

 
>>> joinedlist
[1,2,3,4,5,6]
    
3292
2019-06-07 06: 45: 16Z
  1. bu listone'un derin bir kopyasını oluşturur ve listtwo ekler mi?
    2012-04-19 12: 34: 36Z
  2. @ Daniel, birinci listedeki öğelerin sığ kopyasına ve ardından ikinci listedeki öğelerin sığ kopyasına sahip yeni bir liste oluşturur. Listelerin derin kopyalarını almak için copy.deepcopy kullanın.
    2012-04-19 14: 51: 41Z
  3. burada başka bir yararlı detay: listone += listtwo sonuçta listone == [1, 2, 3, 4, 5, 6] sonuçla
    2014-01-29 16: 14: 49Z
  4. @ br1ckb0t, hangi listone'nin işaret ettiğini değiştirecek mi? Öyleyse: list3 = listone listone+=listtwo Liste3 de değiştirildi mi?
    2014-02-19 05: 01: 13Z
  5. list3'ü değiştiriyor. Ancak, bu bir sorun değilse, iki liste eklemek yerine yeni bir liste eklemek daha kolay okunur.
    2014-02-20 18: 55: 52Z

Her iki listedeki öğeler üzerinde basitçe yinelenen bir jeneratör oluşturmak da mümkündür. Bu, öğeleri yeni bir listeye kopyalamadan işlemek için listeleri (veya yinelenebilir olanları) birlikte zincirlemenizi sağlar:

 
import itertools
for item in itertools.chain(listone, listtwo):
   # Do something with each list item
    
258
2019-03-17 09: 16: 26Z
  1. Bu daha iyi bir yoldur çünkü aynı zamanda numpy dizisiyle de çalışır.
    2012-09-25 09: 37: 51Z
  2. bu aynı şekilde çalışacak mı: mergedList = itertools.chain (listone, listtwo) mergedList içindeki öğe için:
    2013-03-01 00: 55: 23Z
  3. @ d.putto: basit diziler için bireysel öğe erişimi çok yavaştır (her erişim, ham belleği C türüne sahip bir Python nesnesine dönüştürmeyi gerektirir. Vectorized işlemler gibi np.dot(), C tipi üzerinde Python'a gidiş dönüş olmadan doğrudan çalışır ve bu nedenle hızlıdır). merged = np.r_[a, b]'u birleştirilmiş numpy dizisi almak için kullanabilirsiniz.
    2014-04-30 03: 38: 57Z
  4. chain iki liste için daha yavaş (ancak çok fazla değil) tarafında, ancakbirden fazla listeyi zincirleme (n > > 2).
    2019-06-04 14: 10: 17Z

Birleştirilmiş benzersiz değerler listesi elde etmek için kümeleri kullanabilirsiniz

 
mergedlist = list(set(listone + listtwo))
    
182
2014-04-02 07: 28: 31Z
  1. bu, sipariş bilgilerini kaybedecektir.
    2010-09-20 08: 45: 54Z
  2. Doğru, ancak ilgilendiğiniz buysa, yinelenenleri de kaldıracak. Liste ekleme işlemi bunu yapmaz.
    2012-08-21 00: 28: 28Z
  3. listone + [x for x in listtwo if x not in listone]'dan daha iyi
    2013-01-29 13: 13: 40Z
  4. + 1 IMHO, "onaylanmış" cevabında listelerin nasıl ekleneceğini /eklendiğini açıklar (multiset)
    2014-04-27 04: 07: 50Z
  5. Giriş sırasını korumayı düşünüyorsanız, o zaman import collections; mergedlist = list(collections.OrderedDict.fromkeys(listone + listtwo)) hile yapar.
    2016-12-15 20: 11: 24Z

Python >= 3.5 alternatif: [*l1, *l2]

Bu eski bir cevap olsa da, PEP 448 sayısız.

Ek Paket Açma Genelleştirmeleri adlı PEP, Python'da yıldızlı * ifadesini kullanırken genellikle bazı sözdizimsel kısıtlamaları azaltmıştır; Bununla beraber, iki listeye katılmak (herhangi bir yinelemeye uygulanabilir) de şu şekilde yapılabilir:

 
>>> l1 = [1, 2, 3]
>>> l2 = [4, 5, 6]

#unpack both iterables in a list literal
>>> joinedList = [*l1, *l2]
>>> print(joinedList)
[1, 2, 3, 4, 5, 6]

Bu işlev Python 3.5 için tanımlandı , 3.x ailesindeki önceki sürümlerde desteklenmedi. Desteklenmeyen sürümlerde SyntaxError yükseltilecektir.

Diğer yaklaşımlarda olduğu gibi, bu da karşılık gelen listelerdeki öğelerin sığ kopyası olarak oluşturulur .


Bu yaklaşımın tarafı , bunu gerçekleştirmek için gerçekten listelere ihtiyaç duymamanızdır, yinelenebilir bir şey yapacaktır. KEP’te belirtildiği gibi:

  

Bu, yinelenenleri bir toplamda toplamanın daha okunaklı bir yolu olarak da kullanışlıdır.   my_list + list(my_tuple) + list(my_range) gibi bir liste.   sadece [*my_list, *my_tuple, *my_range]’a eşdeğer.

Öyleyse, + ile ekleme, uyumsuzluğa bağlı olarak TypeError'u yükseltirken:

 
l = [1, 2, 3]
r = range(4, 7)
res = l + r

Aşağıdakiler olmaz:

 
res = [*l, *r]

çünkü ilk önce yinelenebilirlerin içeriğini açacak ve ardından içeriklerden bir list oluşturacaktır.

    
162
2018-03-27 06: 31: 53Z
  1. Yinelenebilir türler üzerinde çalışan paket açma yaklaşımının güzel bir örneği, birleştirici listelerden birinin üzerine bir yineleyici döndüren işlevlerdir. Örneğin, birleştirdiğiniz listelerden birini tersine çevirebilirsiniz: res = [*l1, *reversed(l2)]. reversed bir yineleyici döndürdüğünden, res = l1 + reversed(l2) bir hata verir.
    2019-04-09 16: 15: 00Z
  2. Bunun sözlükteki python ile birleştirilmesiyle aynı olduğuna dikkat etmek gerekir. dict3 = {** dict1, ** dict2}. Sözlüğün paketini açmak için ** kullandığımızı, oysa açmak için * listesini kullandığımızı fark edin.
    2019-05-08 18: 16: 03Z

list ts:

 
listone = [1,2,3]
listtwo = [4,5,6]
mergedlist = []
mergedlist.extend(listone)
mergedlist.extend(listtwo)
    
142
2019-05-17 00: 30: 32Z
  1. Sadece listone.extend (listtwo) kullanabilirsiniz, ancak yakında kullanımdan kaldırılacak
    2016-08-01 16: 42: 22Z
  2. @ SergeyIvanov hayır olmaz. list.extend hiçbir yere gitmiyor.
    2017-10-29 10: 53: 58Z

Bu oldukça basittir ve bence eğitici 'de de gösterildi:

 
>>> listone = [1,2,3]
>>> listtwo = [4,5,6]
>>>
>>> listone + listtwo
[1, 2, 3, 4, 5, 6]
    
69
2019-03-17 09: 15: 54Z
  1. Bu, listone ve listtwo'un farklı öğelere sahip olması durumunda da işe yarar ;-)
    2017-09-09 14: 36: 56Z
  2. @ albus_c Neden değil için?
    olmasını beklersiniz?
    2019-06-04 04: 24: 24Z

Bu soru doğrudan iki listeye katılmayı sorar. Ancak, birçok listeye katılmanın bir yolunu ararken bile (sıfır listeye katıldığınızda da dahil olmak üzere) arama oldukça yüksektir.

Bence en iyi seçenek liste anlamalarını kullanmak:

 
>>> a = [[1,2,3], [4,5,6], [7,8,9]]
>>> [x for xs in a for x in xs]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Siz de jeneratörler oluşturabilirsiniz:

 
>>> map(str, (x for xs in a for x in xs))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

Eski Cevap

Bu daha genel bir yaklaşım düşünün:

 
a = [[1,2,3], [4,5,6], [7,8,9]]
reduce(lambda c, x: c + x, a, [])

Çıktısı:

 
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Not, bu ayrıca a, [] veya [[1,2,3]] olduğunda da doğru çalışır.

Ancak, bu itertools ile daha verimli bir şekilde yapılabilir:

 
a = [[1,2,3], [4,5,6], [7,8,9]]
list(itertools.chain(*a))

list’a ihtiyacınız yoksa, yalnızca yinelemeli olan varsa, list()’u atlayın.

Güncelle

Patrick Collins tarafından yorumlarda önerilen alternatif sizin için de işe yarayabilir:

 
sum(a, [])
    
45
2018-09-04 18: 15: 04Z
  1. sum(a,[]) yalnızca "a" bir liste listesi olduğunda çalışır.
    2016-09-14 07: 16: 46Z
  2. Python 3 not: reduce şimdi functools'da bulunuyor, bu nedenle önce onu içe aktarmanız gerekecek.
    2017-07-24 18: 00: 52Z
  3. @ Procyclinsur Ve listelerin listesi tamsayılar içeriyor
    2018-10-05 03: 49: 13Z

+ veya += operatörünü aşağıdaki gibi kullanabilirsiniz:

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

c = a + b

Veya:

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

c += (a + b)

Ayrıca, birleştirilmiş listedeki değerlerin benzersiz olmasını istiyorsanız, şunları yapabilirsiniz:

 
c = list(set(a + b))
    
38
2013-12-22 09: 21: 39Z

itertools.chain işlevinin değişken sayıda argüman kabul ettiğini belirtmekte fayda var:

 
>>> l1 = ['a']; l2 = ['b', 'c']; l3 = ['d', 'e', 'f']
>>> [i for i in itertools.chain(l1, l2)]
['a', 'b', 'c']
>>> [i for i in itertools.chain(l1, l2, l3)]
['a', 'b', 'c', 'd', 'e', 'f']

Girdi yinelenebilirse (demet, liste, jeneratör vb.), from_iterable sınıf yöntemi kullanılabilir:

 
>>> il = [['a'], ['b', 'c'], ['d', 'e', 'f']]
>>> [i for i in itertools.chain.from_iterable(il)]
['a', 'b', 'c', 'd', 'e', 'f']
    
24
2013-02-05 05: 01: 34Z

Python 3.3+ ile ürün verimini kullanabilirsiniz:

 
listone = [1,2,3]
listtwo = [4,5,6]

def merge(l1, l2):
    yield from l1
    yield from l2

>>> list(merge(listone, listtwo))
[1, 2, 3, 4, 5, 6]

Veya, rasgele sayıda yineleyiciyi desteklemek istiyorsanız:

 
def merge(*iters):
    for it in iters:
        yield from it

>>> list(merge(listone, listtwo, 'abcd', [20, 21, 22]))
[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 20, 21, 22]
    
22
2014-07-21 00: 53: 24Z

İki listeyi sıralı biçimde birleştirmek istiyorsanız, merge işlevini heapq kütüphanesinden kullanabilirsiniz.

 
from heapq import merge

a = [1, 2, 4]
b = [2, 4, 6, 7]

print list(merge(a, b))
    
16
2019-03-17 09: 19: 24Z
  1. Dikkat, bu a ve b'un zaten sıralandığını varsayar
    2017-03-17 10: 24: 28Z

Artı operatörünü (+) kullanamıyorsanız, operator içe aktarma özelliğini kullanabilirsiniz:

 
import operator

listone = [1,2,3]
listtwo = [4,5,6]

result = operator.add(listone, listtwo)
print(result)

>>> [1, 2, 3, 4, 5, 6]

Alternatif olarak, __add__ dunder işlevini de kullanabilirsiniz:

 
listone = [1,2,3]
listtwo = [4,5,6]

result = list.__add__(listone, listtwo)
print(result)

>>> [1, 2, 3, 4, 5, 6]
    
13
2019-06-04 07: 09: 55Z
  1. dunderleri kapmak genellikle en iyi yaklaşım değildir. + masadan çıkarsa, operator.add'u kullanın.
    2017-07-04 12: 00: 19Z
  2. Neden artı operatörü kullanılamıyor?
    2018-06-25 19: 36: 56Z
  3. Normalde olmazdı :) ancak harita işleviyle liste birleştirmeyi yapıyorsanız veya add işlevini bir değişkende saklamak istiyorsanız, kullanamazsınız + .
    2018-06-26 04: 30: 52Z

Daha fazla liste için daha genel bir yol olarak, bunları bir listeye koyabilir ve bu cevap iç içe geçmiş bir listeyi düzleştirmek için en iyi yoldur:

 
>>> l=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> import itertools
>>> list(itertools.chain.from_iterable(l))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

1. chain.from_iterable()'un Python 2.6 ve sonrasında mevcut olduğunu unutmayın. Diğer sürümlerde, chain(*l) kullanın.

    
11
2019-03-17 09: 18: 49Z

İki sıralı listeyi karmaşık sıralama kurallarıyla birleştirmeniz gerekiyorsa, aşağıdaki koddaki gibi kendiniz döndürmeniz gerekebilir (okunabilirlik için basit bir sıralama kuralı kullanarak :-)).

 
list1 = [1,2,5]
list2 = [2,3,4]
newlist = []

while list1 and list2:
    if list1[0] == list2[0]:
        newlist.append(list1.pop(0))
        list2.pop(0)
    elif list1[0] < list2[0]:
        newlist.append(list1.pop(0))
    else:
        newlist.append(list2.pop(0))

if list1:
    newlist.extend(list1)
if list2:
    newlist.extend(list2)

assert(newlist == [1, 2, 3, 4, 5])
    
9
2013-12-22 09: 23: 45Z
  1. Veya sadece heapq.merge .
    2019-06-04 04: 21: 28Z
  

Python'da iki listeyi nasıl birleştiririm?

3.7'den itibaren, bunlar python'da iki (veya daha fazla) listeyi birleştirmek için en popüler stdlib yöntemleridir.

 buraya resim açıklamasını girin

  

Dipnotlar

     
  1. Bu, özlü olması nedeniyle kaygan bir çözümdür. Ancak sum, birleştirme işlemini ikili bir şekilde gerçekleştirir, bu bir   her adım için hafıza olarak ikinci dereceden işlem yapılması gerekir. YAP   Listeleriniz büyükse KULLANMAYIN.

  2.   
  3. Bkz. chain   ve    chain.from_iterable   Dokümanlardaki Önce import itertools'a ihtiyacınız olacak.   Birleştirme bellekte doğrusaldır, yani bu en iyisidir.   performans ve sürüm uyumluluğu. chain.from_iterable, 2.6'da tanıtıldı.

  4.   
  5. Bu yöntem Paketten Çıkarma Genelleştirmeleri'ni (PEP 448) kullanır , ama yapamam   her birini kendiniz el ile açmazsanız N listelerine genelleştirin.

  6.   
  7. a += b ve a.extend(b), tüm pratik amaçlar için aşağı yukarı eşdeğerdir. Bir listede çağrıldığında += dahili olarak arayacak    İlk listeyi ikinciye kadar genişleten list.__iadd__.

  8.   

Performans

2 Liste Birleştirme 1

 buraya resim açıklamasını girin

N-List Birleştirme

 buraya resim açıklamasını girin

Arsalar perfplot modülünü kullanarak oluşturuldu. Başvuru için kod.

1. iadd (+=) ve extend yöntemleri yerinde çalışır, bu nedenle testten önce her seferinde bir kopya oluşturulmalıdır. İşleri adil tutmak için, tüm yöntemlerin sol taraftaki liste için göz ardı edilebilecek bir ön kopyalama adımı vardır.


Diğer Çözümler Hakkında Yorumlar

  • list.__add__ TEHLİKE YÖNTEMİNİ doğrudan, hiçbir şekilde şekil veya biçimde KULLANMAYIN. Aslında, gök gürültüsü yöntemlerinden uzak durun ve operatörleri ve tasarlandıkları gibi operator işlevi kullanın. Python, sadece içine doğrudan dunder çağırmaktan daha karmaşık olan, bunlara eklenmiş özenli bir semantiği var. İşte bir örnek . Yani, özetlemek gerekirse, a.__add__(b) = > KÖTÜ; a + b = > İYİ.

  • Buradaki bazı yanıtlar, ikili birleştirme için reduce(operator.add, [a, b])'u sunar - bu, sum([a, b], []) ile yalnızca daha fazla wordy için aynıdır.

  • set kullanan herhangi bir yöntem, yinelemeleri bırakır ve siparişini kaybeder. Dikkatli kullanın.

  • for i in b: a.append(i), tek işlev çağrısı ve daha deyimsel olan a.extend(b)'dan daha endişe verici ve yavaştır. append, listeler için belleğin ayrıldığı ve büyütüldüğü anlambilim nedeniyle daha yavaştır. Benzer bir tartışma için burayı inceleyin.

  • heapq.merge çalışacak, ancak kullanım durumu sıralanmış listeleri doğrusal zamanda birleştirmek için. Başka bir durumda kullanmak bir kalıp önleyicidir.

  • yield liste öğelerini bir işlevden kabul etmek kabul edilebilir bir yöntemdir, ancak chain bunu daha hızlı ve daha iyi yapar (C'de bir kod yoluna sahiptir, bu nedenle hızlıdır).

  • operator.add(a, b), a + b'a kabul edilebilir bir işlevsel eşdeğerdir. Kullanım durumları temelde dinamik yöntem gönderimi içindir. Aksi halde, , daha kısa ve daha okunaklı olan a + b'u tercih edin. YMMV.

7
2019-06-04 06: 09: 40Z

Daha önce çokça belirtildiği gibi, itertools.chain(), birinin her ikisine de aynı işlemi uygulaması gerekiyorsa yapılması gereken yoldur. Benim durumumda, bir listeden diğerine farklı bir etiket ve bayrak vardı, bu yüzden biraz daha karmaşık bir şeye ihtiyacım vardı. Görünüşe göre, sahne arkasında itertools.chain() sadece şunları yapar:

 
for it in iterables:
    for element in it:
        yield element

(bkz. https://docs.python.org/2/library/itertools. html ) bu yüzden buradan ilham aldım ve bu satırlar boyunca bir şeyler yazdım:

 
for iterable, header, flag in ( (newList, 'New', ''), (modList, 'Modified', '-f')):
    print header + ':'
    for path in iterable:
        [...]
        command = 'cp -r' if os.path.isdir(srcPath) else 'cp'
        print >> SCRIPT , command, flag, srcPath, mergedDirPath
        [...]

Burada anlaşılması gereken ana noktalar, listelerin, diğerleri gibi nesneler olan özel bir yinelemeli durum olduğu; ve python içindeki for ... in döngüler, tuple variabl ile çalışabilir.Bu nedenle, aynı anda birden fazla değişkende döngü yapmak basittir.

    
6
2015-11-02 18: 59: 02Z

append() nesnelerinde tanımlanan list yöntemini kullanabilirsiniz:

 
mergedlist =[]
for elem in listone:
    mergedlist.append(elem)
for elem in listtwo:
    mergedlist.append(elem)
    
6
2016-05-05 09: 05: 49Z
  1. sadece bilmeniz için, pratikte yaptığınız iş buysa, diğer önerilen yöntemlerden çok daha yavaştır. stackoverflow.com/questions/17479361/…
    2013-07-16 02: 10: 42Z
 
list(set(listone) | set(listtwo))

Yukarıdaki kod siparişi korumaz, her listeden yinelemeyi kaldırır (birleştirilmiş listeden değil)

    
6
2016-07-07 07: 42: 00Z

Bir liste listesini birleştirmenin gerçekten özlü bir yolu:

 
list_of_lists = [[1,2,3], [4,5,6], [7,8,9]]
reduce(list.__add__, list_of_lists)

bize veren

 
[1, 2, 3, 4, 5, 6, 7, 8, 9]
    
3
2018-06-29 12: 16: 48Z
  1. Lütfen list.__add__ kullanmayın, bunun yerine operator.add kullanın. Bu sum(list_of_lists, [])'un daha wordy eşdeğeridir, ki bu kadar kötü. KULLANMAYIN!
    2019-06-04 02: 38: 06Z
  2. @ cs95, list .__ add__ kullanarak sorunun ne olduğunu açıklayabilir misiniz
    2019-06-06 22: 31: 05Z
  3. dunder yöntemleri "özel yöntemlerdir" ve genellikle doğrudan kullanılmamalıdırlar (diğer işlevler tarafından çağrılırlar). İstisnalar obj.__class__ ve obj.__dict__'dur.
    2019-06-06 22: 33: 29Z

Python'da, bu komutla uyumlu boyutlarda iki diziyi birleştirebilirsiniz

 
numpy.concatenate([a,b])
    
3
2018-10-03 07: 43: 58Z
  1. Soru, numpy istemiyor.
    2019-06-04 02: 37: 28Z
 
lst1 = [1,2]

lst2 = [3,4]

def list_combinationer(Bushisms, are_funny):

    for item in lst1:
        lst2.append(item)
        lst1n2 = sorted(lst2)
        print lst1n2

list_combinationer(lst1, lst2)

[1,2,3,4]
    
1
2017-07-04 12: 00: 44Z
  1. Peki, lütfen biraz açıklama yapın
    2018-10-05 03: 54: 13Z
  2. Ve Bushisms, are_funny hatalı adlar !!!
    2018-10-05 03: 54: 46Z
 
import itertools

A = list(zip([1,3,5,7,9],[2,4,6,8,10]))
B = [1,3,5,7,9]+[2,4,6,8,10]
C = list(set([1,3,5,7,9] + [2,4,6,8,10]))

D = [1,3,5,7,9]
D.append([2,4,6,8,10])

E = [1,3,5,7,9]
E.extend([2,4,6,8,10])

F = []
for a in itertools.chain([1,3,5,7,9], [2,4,6,8,10]):
    F.append(a)


print ("A: " + str(A))
print ("B: " + str(B))
print ("C: " + str(C))
print ("D: " + str(D))
print ("E: " + str(E))
print ("F: " + str(F))

Sonuç:

 
A: [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
B: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
C: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
D: [1, 3, 5, 7, 9, [2, 4, 6, 8, 10]]
E: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
F: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
    
1
2018-02-16 03: 46: 31Z

Yani iki kolay yol var.

  1. +'u kullanma : Sağlanan listelerden yeni bir liste oluşturur

Örnek:

 
In [1]: a = [1, 2, 3]

In [2]: b = [4, 5, 6]

In [3]: a + b
Out[3]: [1, 2, 3, 4, 5, 6]

In [4]: %timeit a + b
10000000 loops, best of 3: 126 ns per loop
  1. Genişlemeyi kullanma : Mevcut listeye yeni liste ekler. Bu, ayrı bir liste oluşturmayacağı anlamına gelir.

Örnek:

 
In [1]: a = [1, 2, 3]

In [2]: b = [4, 5, 6]

In [3]: %timeit a.extend(b)
10000000 loops, best of 3: 91.1 ns per loop

Böylece en popüler iki yöntemden extend’un verimli olduğunu görüyoruz.

    
1
2019-03-17 09: 22: 08Z
  1. Bir + b + c + d + e gibi birden çok liste eklemem gerekirse ne olur?
    2019-03-11 21: 49: 01Z
  2. @ Tweakimp Birkaç seçeneğe sahip olan bu cevaba bakın (chain.from_iterable'u tavsiye ederim).
    2019-06-04 03: 53: 07Z

İki eski listeyi tutarken yeni bir liste istiyorsanız:

 
def concatenate_list(listOne, listTwo):
    joinedList = []
    for i in listOne:
        joinedList.append(i)
    for j in listTwo:
        joinedList.append(j)

    sorted(joinedList)

    return joinedList
    
0
2018-07-31 09: 35: 32Z
  1. return'unuz olduğundan, bunun bir fonksiyon olması gerekir. (Bir işlevin dışında yasaklandığından)
    2017-07-04 12: 02: 01Z
kaynak yerleştirildi İşte
Diğer sorular