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

是否有一个简单的列表表达式可以获取列表中项目的索引但不获取列表中项目的值?

是否有一个简单的列表表达式可以获取列表中项目的索引但不获取列表中项目的值?

慕森王 2022-06-28 16:01:32
给定一个列表,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贡献1877条经验 获得超1个赞

不需要列表表达式,您可以使用:

list(range(len(z)))


查看完整回答
反对 回复 2022-06-28
?
POPMUISE

TA贡献1765条经验 获得超5个赞

没有您正在寻找的功能。

我认为range(len(z))将是最好的选择。


查看完整回答
反对 回复 2022-06-28
?
桃花长相依

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


查看完整回答
反对 回复 2022-06-28
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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