2010-07-18 25 views
12

Aşağıdaki tupllerin (yani, listedeki öğeler) her birinin içeriğini, içinde 'bir şey' bulunan başka bir listeye nasıl ekleyebilirim? Yani, bir listeye aşağıdaki eklemek istiyorum: boş değil ki (örneğin [] sonuçlanabilir):Bir listeye tuples ekleme

l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)] 

Açıkçası, bir şey yapmaz aşağıdadır:

for item in l: 
    result.append(item) 
    print result 

Ben bir çıktısını almak istiyorum:

[something, 'AAAA', 1.11] 
[something, 'BBB', 2.22] 
[something, 'CCCC', 3.33] 
+1

sen _all_ tuples listeye eklenecek istiyor musunuz, bir diğerinden sonra mı? Ya da sadece bir kerede? Başka bir deyişle, [bir şey, tuple1, tuple2, tuple3] 'veya birkaç liste içeren bir liste mi arıyorsunuz? [Bir şey, tuple1]', '[birşey, tuple2]' ve '[birşey, tuple3] '? –

cevap

29
result.extend(item) 
+1

+1. Bu en temiz versiyon. – Skurmedel

+0

Nifty, '' uzatma '' demeyi sadece doğru şekilde halledeceğini bilmiyordum. – John

+0

+1 "En temiz" i saniye. – Kit

2
bir lis bir tuple dönüştürmek için dahili list() işlevini kullanabilirsiniz

t. Yani daha kolay bir versiyonu:

l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)] 
result = [list(t) for t in l] 
print result 

Çıktı: Bunu tek tek öğeleri eklemek için tuple paketten gerekir

[['AAAA', 1.1100000000000001], 
['BBB', 2.2200000000000002], 
['CCCC', 3.3300000000000001]] 
+0

neden alıyorum: TypeError: 'tuple' nesnesi callable değil mi? – DGT

+0

@DGT hiç bir fikrim yok. python'un hangi sürümünü kullanıyorsunuz? Yukarıdaki 2.6/2.7'de iyidir. – cletus

+0

@DGT: Muhtemelen bir tuple takiben bir virgül kullanmıyorsunuzdur. (A, b, c) (d, e, f) gibi bir şey bu hatayı üretecektir. Sabit versiyon (a, b, c), (d, e, f) –

-1

. Şunun gibi:

l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)] 

for each_tuple in l: 
    result = ['something'] 
    for each_item in each_tuple: 
    result.append(each_item) 
    print result 

Buna alacak:

['something', 'AAAA', 1.1100000000000001] 
['something', 'BBB', 2.2200000000000002] 
['something', 'CCCC', 3.3300000000000001] 

Onların Doğru görüntülenmesi amacıyla sayısal değerler üzerine bazı işlemler yapmanız gerekir, ama bu başka bir soru olurdu.

Kolayca bir listeye bir demet dönüştürebilirsiniz
+1

Hayır, bu değil. –

+0

Hayır, buna değil. Ama en azından bu soruyu sonuna kadar okumayı başaran tek kişi bu. – Slava

3

:

>>> t = ('AAA', 1.11) 
>>> list(t) 
['AAAA', 1.11] 

Ve sonra extend ile listeleri arada kullanabilirsiniz:

>>> t = ('AAA', 1.11) 
>>> result = ['something'] 
>>> result.extend(list(t)) 
['something', 'AAA', 1.11]) 
+0

+1 Bilmiyorum 'extend() ':) – Kit

İlgili konular