为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗

为什么 print x[0] + ':', x[1] 会是成原来的成对的,为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗

正在回答

2 回答

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~

1 回复 有任何疑惑可以回复我~
#1

qq_九曜_03116704 提问者

可是set是不固定啊 list x 中的所有第一个元素‘Adam’ ‘Lisa’ ‘Bart’ 与 list x 中的所有第二个元素即 分别为95 85 59 是可以随意组合啊 不一定会是'Adam', 95, 'Lisa', 85, 'Bart', 59 也可以'Adam', 59, ,'Lisa', 95 'Bart',85 等等组合啊 可是运行之后就只出现固定的'Adam', 95, 'Lisa', 85, 'Bart', 59 了
2016-04-06 回复 有任何疑惑可以回复我~
#2

Miss_Artka

注意到set的元素是tuple,因此 for 循环的变量被依次赋值为tuple。 这里的s 就是一个,以 3个元组为元素的 set(集合). 即: s = {('Bart', 59), ('Lisa', 85), ('Adam', 95)} 而,赋值语句下面那个 for 循环的话, 每次x的值 其实就是 集合中的 某一整个元组,比如说: for x in s:     print x  这样的话 输出如下(或不一定是这样的顺序,因为 集合是无序的): ('Bart', 59) ('Lisa', 85) ('Adam', 95)
2016-04-06 回复 有任何疑惑可以回复我~
#3

Miss_Artka 回复 qq_九曜_03116704 提问者

而print x[0],':',x[1]  x[0] 就是 某元组(是tuple所以固定)的第一个元素---某个名字, x[1] 就是元组的第二个元素---它所对应的分数 了。
2016-04-06 回复 有任何疑惑可以回复我~
#4

Oscar_Yang

那个‘+’号啥意思
2016-04-06 回复 有任何疑惑可以回复我~
#5

Miss_Artka 回复 Oscar_Yang

两元素之间的连接符‘+’=‘,’ 输出大概就是一个空格
2016-04-06 回复 有任何疑惑可以回复我~
#6

qq_九曜_03116704 提问者

非常感谢!
2016-04-06 回复 有任何疑惑可以回复我~
#7

qq_九曜_03116704 提问者 回复 Miss_Artka

恩恩 谢谢我好像有点明白了 我以后按这个方向理解理解
2016-04-06 回复 有任何疑惑可以回复我~
#8

Miss_Artka 回复 qq_九曜_03116704 提问者

不用客气^_^~一块加油哈~
2016-04-06 回复 有任何疑惑可以回复我~
查看5条回复

刚开始接触这个确实容易 被这种嵌套的东西扰乱。我们把代码贴出来,慢慢讲:

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] 就是元组的第二个元素 分数 了。


0 回复 有任何疑惑可以回复我~
#1

qq_九曜_03116704 提问者

恩恩 谢谢
2016-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么不会出现 Adam:59 之类随便组合数字呢,是因为是Tuple吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信