2016-03-19 29 views
-2

Bu benim ne çalışıyorum ve & parametreleri, liste elemanları olarak alınır.Python listeleri yeni listede Kopya liste değerleri

a = [] 
for line in fileinput.input(): 
    a.append((line.strip()).split(' ')) 
print a 

Çıktı:

[['parameter1': 'value1'], ['parameter2': 'value2'], ['parameter3': 'value3']] 

Şimdi bu değerleri taşımak için çalışıyorum - Yeni bir listeye içinde - böylece değer1, değer2, değer3, &.

Bunu anlayamıyorum. Kopyalama fonksiyonu tam listeyi kopyalayacaktır. Bu değerler üzerinden yinelemek ve yeni listeye eklemek için döngüler kullanır mıyım? Metin dosyasından okurken bu değerleri doğrudan yeni listeye eklemek mümkün mü? ..?

+1

bize ** fiili ** çıktı gösteriniz olacak. Sorunuzdaki çıktı geçerli Python değil. – MattDMo

+0

@MattDMo daha çok "dict_list" gibi bir – danidee

+0

@MattDMo çıktısı yalnızca eksik alanlardır. Sabit. – Sunshine

cevap

2

Bir liste anlayışı ile yapabilirsiniz:

new_a = [sub[1] for sub in a] 

Ayrıca yapabilirsiniz:

import operator 

new_a = list(map(operator.itemgetter(1), a)) 
Bunun bir eşdeğer bir lambda fonksiyonunu kullanmaktır

:

new_a = list(map(lambda x: x[1], a)) 

Bir yorumda belirtildiği gibi, bunu da yapabilirsiniz:

new_a = [value for parameter, value in a] 

Son olarak, a listesindeki listelerden herhangi birinin uzunluğu iki değilse, bir hata atılır. İstediğinize bağlı olarak iyi bir şey ya da kötü bir şey olabilir.

Ayrıca sadece sadece ikinci eleman eklemek için for döngü kullanabilirsiniz: İtiraf etmeliyim

a = [] 
for line in fileinput.input(): 
    a.append(line.split(' ')[1]) 
print a 

, ben bile fark etmedi ben en flaschbier cevabı görene kadar o.

+0

Veya '[param değeri, a değeri] –

+0

@ tobias_k: Bu doğrudur. Bunu ekledim. – zondo

+0

ne listesi? (Harita (lambda x: x [1], a)) ' – danidee

1
b.append(line.split(' ')[1]) 

Eğer döngü önce hazırladığımız başka bir listeye b her satırından sadece value ekler.

sorudan programın çıktısı btw

[['parameter1', 'value1'], ['parameter2', 'value2'], ['parameter3', 'value3']] 

...

İlgili konular