看板 Python 關於我們 聯絡資訊
新手提問~ 如果同時有兩個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
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)
mars90226:個人比較喜歡zip 07/04 18:26
CRAZMELO:那可以順便請教一下ZIP的寫法嗎><" 07/04 19:10
Reylod:zip(list1, list2) => [(list1[0], list2[0]), ...] 07/04 19:15
darkgerm:其實官網的 zip 範例很清楚 07/04 20:03
mikapauli:如果不一定要用for的話 07/04 21:24
mikapauli:'\n'.join( 07/04 21:27
mikapauli: map( 07/04 21:27
mikapauli: str.__add__, 07/04 21:27
mikapauli: name, 07/04 21:27
mikapauli: map( 07/04 21:27
mikapauli: ','.__add__, 07/04 21:27
mikapauli: map( 07/04 21:28
mikapauli: str, 07/04 21:28
mikapauli: score)))) 07/04 21:28
darkgerm:樓上的方法好有趣XD 不過只用一個 map 會比較快吧 07/05 00:12
darkgerm:'\n'.join( 07/05 00:12
darkgerm: map( 07/05 00:13
darkgerm: lambda x,y: x+','+str(y), 07/05 00:13
darkgerm: name, 07/05 00:13
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)