最近加入了Python之禅的知识星球Python之禅和他朋友们
军哥在星球内分享干货,组织交流,让我这个编程小白获益良多。今天我们来学习一下星球内的第一道题目,也算是我学习第一道题后的总结
题目
在使用 for 循环迭代一个列表时,有时我们需要获取列表中每个元素所在的下标位置是多少,例如 numbers = [10, 29, 30, 41],要求输出 (0, 10),(1, 29),(2, 30),(3, 41)
在解题前我们需要了解下面几点知识
- range()函数
- len()函数
- for循环
- 字符串格式化表达式
- 字符串格式化方法
- enumerate()函数
range()函数
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
len()函数
>>>l = "Treehl"
>>> len(l) # 字符串长度
6
>>> m = [1,2,3,4,5]
>>> len(m) # 列表元素个数
5
for循环
>>>names = ['a', 'b', 'c']
>>>for name in names:
print(name)
a
b
c
字符串格式化表达式
>>> 'That is %d %s bird!' % (1, 'dead')
>>> That is 1 dead bird!
字符串格式化方法
>>> 'That is {0} {1} bird!'.format(1, 'dead')
>>> That is 1 dead bird!
enumerate()函数
enumerate(sequence, [start=0])
- sequence -- 一个序列、迭代器或其他支持迭代对象
- start -- 下标起始位置
>>>numbers = [1, 2, 3, 4]
>>>list(enumerate(numbers))
>>>[(0, 1), (1, 2), (2, 3), (3, 4)]
>>>list(enumerate(numbers, start=1))# 下标从1开始
>>>[(1, 1), (2, 2), (3, 3), (4, 4)]
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>>n = numbers
>>>for index, value in enumerate(n):
print(index, value)
0 1
1 2
2 3
3 4
到这一步解题的基础知识都了解完了,开始做题吧
# answer 1
numbers = [10, 29, 30, 41]
for i in range(len(numbers)):
print('{0}, {1}'.format(i, numbers[i]))
# answer 2
numbers = [10, 29, 30, 41]
for index, value in enumerate(numbers):
print(index, value)