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

这怎么得出结果的?

for index, name in enumerate(L, 1):
   print index, '-', name

正在回答

3 回答

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
任务
zip()函数可以把两个 list 变成一个 list:
zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]
在迭代 ['Adam', 'Lisa', 'Bart', 'Paul'] 时,如果我们想打印出名次 - 名字(名次从1开始),请考虑如何在迭代中打印出来。
提示:考虑使用zip()函数和range()函数
'''

# s = ['Adam', 'Lisa', 'Bart', 'Paul']
# for index, name in enumerate(s):
#     print index + 1, '-', name

# L = ['Adam', 'Lisa', 'Bart', 'Paul']
# for index, name in zip(range(1, len(L)+1), L):
#     print index, '-', name


L = ['Adam', 'Lisa', 'Bart', 'Paul']
X = list(i for i in range(1,len(L)+1))
Y = zip(X, L)
print Y
for index, name in Y:
    print index, '-', name


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

在python中迭代永远是迭代出元素本身而非元素的索引,那么enumrate()方法就是相当于在for循环中拿到了元素的索引

如下面这个集合本身如果只是迭代的话他是只能迭代元素本身而且是没有下标的,但是enumrate()函数完美解决了这个问题

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):

                 print index, '-', name

    0 - Adam

    1 - Lisa

    2 - Bart

    3 - Paul

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

L在你的代码中未事先定义。enumerate是把你的“L”数字化成为索引+内容的形式,打印 index, '-', name时会打印出L集合内的 索引数字(内容所在位置)+内容。参见下面例子

list1 = ["这", "是", "一个", "测试"]

    for index, item in enumerate(list1):   

print index, item

>>>

0 这

1 是

2 一个

3 测试

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

举报

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

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

进入课程

这怎么得出结果的?

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