给定一个列表,z = [1, 5, 10, 100, etc...] 想要获取列表中项目的位置,而不是使用列表表达式而不是其他方法获取项目的值。我知道三个选项:[1] 使用 range 和 length 函数 for i in range(len(z)): [2] 使用 enumerate 函数并省略值 answer = [i for i,v in enumerate(z)] [3] 将 range 和 len 函数放在列表表达式中b = [i for i in range(len(z))]...总之,是否有一个函数可以替换enumerate或range(len())仅返回索引而不必丢弃v。# example listz = [1, 20, 50, 100, 50]# using the range and len functionsfor i in range(len(z)): print(i)# the enumerate method (ignoring v)answer = [i for i,v in enumerate(z)]print(answer)# the range(len()) inside a list expressionanswer = [i for i in range(len(z))]print(answer)想要的答案:[0, 1, 2, 3, 4]
3 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
没有内置函数,您可以编写自己的函数来替代使用您已经描述的方法。
def count(iterable):
c = 0
for _ in iterable:
yield c
c += 1
# TEST:
z = [1, 20, 50, 100, 50]
for i in count(z):
print(i)
结果是:
0
1
2
3
4
添加回答
举报
0/150
提交
取消
