2016-04-12 27 views
-1
list1 = [1,2,4,5,7,8,9] corresponds to ID 
list2 = [3,2,1,1,1,2,3] corresponds to relevance 

İki farklı liste var list1, list2 sayısal değerler ile. Hem başlıkları ["ID", "Alaka düzeyi"] olan bir csv dosyasına yazmak istiyorum. Şimdi "ID" başlığında liste1 ve "Alaka düzeyi" başlığındaki list2 değerlerini yazmak istiyorum. Her iki listeyi yazmaya çalışırken aşağıdaki kodu yazdım ama istenen çıktıyı vermiyor. İki ayrı listeyi python üstbilgileriyle csv'ye yazın.

Ben çıktı numune formatında altında olmak istiyorum:

ID Relevance 
1   3 
3   2 
4   2 
6   1 
7   3 
10  1 

kodu:

+0

Yayınla deneyin kod * düzgün bir şekilde biçimlendirilmiş *, neyin yanlış yaptığını bize söyleyin ve düzeltmek için ne yaptığınızı bize bildirin. – Malvolio

+0

@Malvolio Her olası kodu yığın akışından denedim, ancak beklenen sonuçları alamadım. Yayınlanan kodun üstünde şu anda tercih ettiğim son kod var. – Sameer

cevap

4

aradığınız ne zip() olduğunu. Bu çalışacaktır: Ya da daha verimli

with open('results_cosine11.csv', 'w', encoding="ISO-8859-1", newline='') as myfile: 
    wr = csv.writer(myfile) 
    for value in zip(list1,list2): 
     wr.writerow(value) 

:

with open('results_cosine11.csv', 'w', encoding="ISO-8859-1", newline='') as myfile: 
    wr = csv.writer(myfile) 
    wr.writerows(zip(list1,list2)) 

çok başlık yazmak için:

with open('results_cosine11.csv', 'w', encoding="ISO-8859-1", newline='') as myfile: 
    wr = csv.writer(myfile) 
    wr.writerow(("ID", "Relevance")) 
    wr.writerows(zip(list1,list2)) 
+1

'wr.writerows (zip (list1, list2))' da, haritayı tüketmek için geçici bir liste oluşturma gereği duymadan çalışır. –

+0

@Ilja Görmediniz. Teşekkürler, güncellendi. – Bharel

+0

@bharel Ayrıca üst satırda ID, Relevance – Sameer

0

a= zip(list1,list2) 
for id,relevance in a: 
    #... do whatever 
İlgili konular