[問題] 同時印出兩個list中的資料

看板Python作者 (是黑是白)時間13年前 (2012/07/04 13:45), 編輯推噓4(4017)
留言21則, 6人參與, 最新討論串1/1
新手提問~ 如果同時有兩個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

07/04 13:47, , 1F
zip or enumerate
07/04 13:47, 1F
感謝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)

07/04 18:26, , 2F
個人比較喜歡zip
07/04 18:26, 2F

07/04 19:10, , 3F
那可以順便請教一下ZIP的寫法嗎><"
07/04 19:10, 3F

07/04 19:15, , 4F
zip(list1, list2) => [(list1[0], list2[0]), ...]
07/04 19:15, 4F

07/04 20:03, , 5F
其實官網的 zip 範例很清楚
07/04 20:03, 5F

07/04 21:24, , 6F
如果不一定要用for的話
07/04 21:24, 6F

07/04 21:27, , 7F
'\n'.join(
07/04 21:27, 7F

07/04 21:27, , 8F
map(
07/04 21:27, 8F

07/04 21:27, , 9F
str.__add__,
07/04 21:27, 9F

07/04 21:27, , 10F
name,
07/04 21:27, 10F

07/04 21:27, , 11F
map(
07/04 21:27, 11F

07/04 21:27, , 12F
','.__add__,
07/04 21:27, 12F

07/04 21:28, , 13F
map(
07/04 21:28, 13F

07/04 21:28, , 14F
str,
07/04 21:28, 14F

07/04 21:28, , 15F
score))))
07/04 21:28, 15F

07/05 00:12, , 16F
樓上的方法好有趣XD 不過只用一個 map 會比較快吧
07/05 00:12, 16F

07/05 00:12, , 17F
'\n'.join(
07/05 00:12, 17F

07/05 00:13, , 18F
map(
07/05 00:13, 18F

07/05 00:13, , 19F
lambda x,y: x+','+str(y),
07/05 00:13, 19F

07/05 00:13, , 20F
name,
07/05 00:13, 20F

07/05 00:13, , 21F
score))
07/05 00:13, 21F
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)
文章代碼(AID): #1FyzYK4C (Python)