作者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)