如何打印元组列表
我有一个叫做 gradebook
的列表,里面每个元素都是一个元组,元组里包含一门课和学生能得到的分数。比如说,
gradebook = [('Math 212', 'Linear Algebra', 'Fall 2012', 'B'),
('CS 130', 'Python', 'Spring 2013', 'A')]
接下来还有其他的内容。我希望它能像这样打印出来:
Class: Math 212.....Subject: Linear Algebra.....Term: Fall 2012.....Grade: B`
Class: CS 130.......Subject: Computer Science...Term: Spring 2013...Grade: A`
我想要能够遍历这个列表中的每个元组,然后把元组里的每个元素都打印出来。我该怎么做呢?
补充说明:这是我现在的代码:
for aTuple in gradebook:
print(aTuple)
抱歉,我对Python还很陌生,所以我不太明白这个是怎么工作的。
8 个回答
4
gradebook = [('Math 212', 'Linear Algebra', 'Fall 2012', 'B'), ('CS 130', 'Python', 'Spring 2013', 'A')]
fieldwidths = 13, 19, 14, 1
for tup in gradebook:
tup = (s.ljust(w, '.') for s,w in zip(tup, fieldwidths))
print 'Class: {}Subject: {}Term: {}Grade: {}'.format(*tup)
我手动设置了字段的宽度,让它们和你的例子一致。不过,你可能更喜欢用一种聪明的方法来生成字段宽度,也就是根据成绩单中每一列的最大元素长度来决定。
下次的话,使用一个 dict
(字典)来存储你的成绩单条目会比用 tuple
(元组)更好。
10
或者你可以这样做...
for id, name, semester, grade in gradebook:
print id, name, semester, grade
23
一般来说,你可以通过一个列表来循环,并访问元组的索引:
for x in gradebook:
print x[0], x[1]
在这个例子中,x[0] 会给你元组的第一部分,x[1] 就是第二部分,依此类推。你可以试着玩玩这个格式,应该能自己搞定其他的。
补充说明:虽然这里有些其他的回答看起来更好,因为它们把元组拆开了,更符合“Python的风格”。像这样:
a, b, c = ('a','b','c')