作者bwtalk (是黑是白)
看板Python
標題[問題] 同時印出兩個list中的資料
時間Wed Jul 4 13:45:53 2012
新手提問~
如果同時有兩個list要印出資料
想用for迴圈寫,大家會怎麼寫?
例如以下例子,想把名字與分數寫進txt檔中,格式如:
John,60
Mary,75
Gra,91
Jack,56
Michael,33
Tina,88
該怎麼寫比較好呢
我只想到
writeFile = file('list.txt','w')
name = ['John','Mary','Gra','Jack','Michael','Tina']
score = [60,75,91,56,33,88]
count = 0
for data in name:
writeFile.write(data)
writeFile.write(",")
writeFile.write("%s\n",%score[count])
count = count + 1
也就是一個list用for迴圈印出
另一個用變數count印出
雖然可以做,但感覺還是笨笨的
請問大家都怎麼寫呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.1.134
1F:→ drjoey:zip or enumerate 07/04 13:47
感謝drjoey大!! 已經查到enumerate取代count變數的寫法~
for (offset,data) in enumerate(name):
writeFile.write("%s,%s\n"%(data,score[offset]))
※ 編輯: bwtalk 來自: 140.116.1.134 (07/04 14:06)
2F:→ mars90226:個人比較喜歡zip 07/04 18:26
3F:推 CRAZMELO:那可以順便請教一下ZIP的寫法嗎><" 07/04 19:10
4F:推 Reylod:zip(list1, list2) => [(list1[0], list2[0]), ...] 07/04 19:15
5F:→ darkgerm:其實官網的 zip 範例很清楚 07/04 20:03
6F:推 mikapauli:如果不一定要用for的話 07/04 21:24
7F:→ mikapauli:'\n'.join( 07/04 21:27
8F:→ mikapauli: map( 07/04 21:27
9F:→ mikapauli: str.__add__, 07/04 21:27
10F:→ mikapauli: name, 07/04 21:27
11F:→ mikapauli: map( 07/04 21:27
12F:→ mikapauli: ','.__add__, 07/04 21:27
13F:→ mikapauli: map( 07/04 21:28
14F:→ mikapauli: str, 07/04 21:28
15F:→ mikapauli: score)))) 07/04 21:28
16F:推 darkgerm:樓上的方法好有趣XD 不過只用一個 map 會比較快吧 07/05 00:12
17F:→ darkgerm:'\n'.join( 07/05 00:12
18F:→ darkgerm: map( 07/05 00:13
19F:→ darkgerm: lambda x,y: x+','+str(y), 07/05 00:13
20F:→ darkgerm: name, 07/05 00:13
21F:→ darkgerm: score)) 07/05 00:13
zip也好方便~
list = zip(name,score)
for data in list:
print "%s,%s"%(data[0],data[1])
mikapauli跟darkgerm的用法還在研究中XD
※ 編輯: bwtalk 來自: 140.116.1.134 (07/10 10:20)
※ 編輯: bwtalk 來自: 140.116.1.134 (07/10 10:20)