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

为什么参考代码的结果不是 0 -(1,'Adam') 1 - (2, 'Lisa') 2 - (3, 'Bart') 3 - (4, 'Paul')

把for循环中的index去掉,直接用for name in zip(~~)不行吗?

正在回答

2 回答

enumerate()函数所生成的索引才从0开始,而这里用的是zip()将1,2,3……和L拼合,再进行输出,并没有用到enumerate()函数,所以说索引没有0开始,而如果用

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for index, name in enumerate(zip(range(1,len(L)+1),L)):

    print index, '-', name

这样的代码,才会出现你所说的回显

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

    名次当然是从第一名开始的啊,range(1,len(L)+1)是列表[1,2,3,4],再跟L结合,不就是1 1 对应的关系了吗。。。。

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

ZHU_WD 提问者

但是zip不是把两个list变成一个list吗?这个时候用for index, name in zip(N,L): 输出的索引号不应该是从0开始的吗?
2016-09-04 回复 有任何疑惑可以回复我~
#2

慕勒2752433 回复 ZHU_WD 提问者

for t in enumerate(L): index = t[0] name = t[1] print index, '-', name 迭代原理 index取得是tuple中第一个位置的内容,这里每个元素的第一个位置分别是1,2,3,4. 故应该是从1开始~
2016-10-21 回复 有任何疑惑可以回复我~
#3

xdfcc 回复 ZHU_WD 提问者

你没有看教程解释或者说没看明白,通过for..in取到的是元素本身而不是索引值,虽然我们心里知道List的索引是从0开始,但并没有一个方法提供可以直接获取索引值!要想获取元素的索引值就必须想其他办法,如教程中提供的enumerate()方法,甚至是练习中提供的zip方法就是把我们知道的索引通过其他方法引入进去再取出来
2016-11-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么参考代码的结果不是 0 -(1,'Adam') 1 - (2, 'Lisa') 2 - (3, 'Bart') 3 - (4, 'Paul')

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号