jadonli 发表于 2020-5-27 13:15:41

在列表里面求出多个引索值

ratings = [1,5,0,0,0,1,2,3,4,4,4,3,4,0,0,0,1,2,3,4,4,4,
1,4,0,0,0,1,2,5]


for i in ratings:
    if i == 5:
      a = ratings.index(5)
      print(a)

我想要的是列表里面的两个五的引索值
但是我只能得到的是
1
1
>>>

Twilight6 发表于 2020-5-27 13:16:39

本帖最后由 Twilight6 于 2020-5-27 13:20 编辑

index 如果没有限定范围 只能索引第一次遇到 数字
这样每次索引完就 重新设置索引范围即可
ratings = [1,5,0,0,0,1,2,3,4,4,4,3,4,0,0,0,1,2,3,4,4,4,
1,4,0,0,0,1,2,5]
a = -1
for i in ratings:
    if i == 5:
      a = ratings.index(5,a+1,len(ratings))
      print(a)

这样限定开始和结束范围,开始为上次索引到的数 +1的下一个数,结束为整个列表长度的访问

heidern0612 发表于 2020-5-27 13:19:27

ratings =


for i in range(len(ratings)):
    if ratings == 5:
         print(i)

永恒的蓝色梦想 发表于 2020-5-27 13:39:32

lambda list,target:(index for index,element in enumerate(list) if element==target)

jadonli 发表于 2020-5-27 13:52:01

heidern0612 发表于 2020-5-27 13:19


首先谢谢你, 我还有一个问题。按照你的代码结果是两个数字,假设我还要用这两个数字的话。 怎么给他们一个变量呢?

heidern0612 发表于 2020-5-27 13:56:22

jadonli 发表于 2020-5-27 13:52
首先谢谢你, 我还有一个问题。按照你的代码结果是两个数字,假设我还要用这两个数字的话。 怎么给他们一 ...

a=ratings

b=rating


这样?

fish_游鱼 发表于 2020-5-27 14:07:45

把索引值存到列表里就行

jadonli 发表于 2020-5-27 14:09:38

heidern0612 发表于 2020-5-27 13:56
这样?

其实我还有一组list的,是先得出这组ratings 的index 值,然后用这个值去带进另一个lists相应的位置。
假如
ratings =


for i in range(len(ratings)):
    if ratings == 5:
         print(i)

print(movies)#这里只显示一个电影名字而已 要求是两个。

jadonli 发表于 2020-5-27 14:15:37

fish_游鱼 发表于 2020-5-27 14:07
把索引值存到列表里就行

谢谢,你提醒了我。我是新建空列表 然后append进去的。
页: [1]
查看完整版本: 在列表里面求出多个引索值