为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗
为什么 print x[0] + ':', x[1] 会是成原来的成对的,为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗
为什么 print x[0] + ':', x[1] 会是成原来的成对的,为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗
2016-04-05
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
print x[0] + ':', x[1]
首先理解这里for x in s 中的x是指set的每一个元素——第一个元素:('Adam', 95)第二个: ('Lisa', 85)第三个:('Bart', 59)
而代码print x[0] + ':', x[1]中 的x[0]是指 list x 中的所有第一个元素即 分别为‘Adam’ ‘Lisa’ ‘Bart’
x[1]是指 list x 中的所有第二个元素即 分别为95 85 59
这样就一一对应啦,并不是因为是tuple~
刚开始接触这个确实容易 被这种嵌套的东西扰乱。我们把代码贴出来,慢慢讲:
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)]) for x in s: print x[0],':',x[1]
这里的s 就是一个,以 3个元组为元素的 set(集合). 即:
s = {('Bart', 59), ('Lisa', 85), ('Adam', 95)}
而,赋值语句下面那个 for 循环的话, 每次x的值 其实就是 集合中的 某一个元组,比如说:
for x in s: print x
## 这样的话 输出如下(不一定是这样的顺序,因为 集合是无序的): ('Bart', 59) ('Lisa', 85) ('Adam', 95)
所以你 代码中的最后一句:
print x[0],':',x[1] ## x[0] 就是 元组的第一个元素 某个名字, x[1] 就是元组的第二个元素 分数 了。
举报