我试图像这样的列表中获取元素的索引号

scores = [100,22,33,44,22,56]

我想获得两个索引号22。我正在尝试通过将索引号存储到列表中来做到这一点。 但是在这种情况下,我找到了两个索引号之后,该程序就突然终止了,因为在找到第二个22号之后找不到22个索引,因此没有给我打印找到的索引号的机会。 如何使它正确显示索引号?

scores = [100,22,11,22,44,66,77]
position = 0
counter = []
findthis = 22

for x in scores:
     position = scores.index(findthis, position)
     counter.append(position)
     position = position + 1

print(counter)

===============>>#1 票数:1

使用tryexcept块是这样的:

scores = [100,22,11,22,44,66,77]
position = 0
counter = []
findthis = 22

while True:
    try:
         position = scores.index(findthis, position)
         counter.append(position)
         position = position + 1
    except ValueError:
         break

print(counter)

但我同意Guillaume Dupre的看法,改用更简单的解决方案。

===============>>#2 票数:1

您应该考虑这种更简单的方法:

scores = [100,22,11,22,44,66,77]
position = 0
counter = []
findthis = 22

for x in scores:
     if x==findthis:
          counter.append(position)
     position = position + 1 

===============>>#3 票数:1

如果要在分数列表中使用findthis所有索引,请使用枚举

print([i for i, ele in enumerate(scores) if ele == findthis])

i是分数中每个元素的索引, ele是每个实际元素。

一旦超过列表中第二个22的索引,就会收到错误,因为列表中没有22 ,代码可以进行两次迭代,然后剩下-> 44,66,77]

scores[position:]
1st iteration -> [22, 11, 22, 44, 66, 77]
2nd           ->  [22, 44, 66, 77]
3rd           ->  [44, 66, 77] # error

===============>>#4 票数:0

这是一个替代解决方案:

scores = [100,22,11,22,44,66,77]
counter = []
findthis = 22

for index,value in enumerate(scores):
  if value is findthis:
    counter.append(index)

这是列表理解的解决方案:

scores = [100,22,11,22,44,66,77]
findthis = 22

counter=[index for index,value in enumerate(scores) if value is findthis]

注意:我现在才看到padraic-cunningham已经使用enumerate()函数给出了解决方案。 很抱歉重复。

  ask by Sean Klaus translate from so

未解决问题?本站智能推荐:

3回复

如何打印索引号(python)列表?

好的,我走了! 我顺便说一句,我是一个菜鸟,我正努力学习。 我不得不写一些代码来打开一个csv文件,并将列表格式化为可以与Libsvm一起使用,但无论如何这是我到目前为止编写的代码: 这给了我一个这样的列表: testingSeta.csv原始格式: 我希望这样的列表
4回复

如何找到列表中项目的每次出现并打印其每次出现的索引号?

我希望能够查看python列表并打印出每个出现次数的索引号。 例: 当我尝试此代码时,它只给我t的第一个索引号,但我希望它打印出t所使用的每个索引号。
3回复

在Python 2.7中,如何在列表中打印带有索引号的值?

我正在尝试用python制作二十一点游戏。 我遇到了问题,因为我试图在游戏中使用随机模块。 我使用了随机模块来获取一个与列表中的索引号协调的数字。 我所做的列表由卡片面值组成。 我不知道如何使用随机索引号打印这些值。 这是我的代码: 我希望有人可以帮助我解决这个问题。 谢谢!
3回复

Python使用索引号从列表中检索元素

我一直在四处寻找这个问题的答案,但迄今为止没有运气。 Python列表。 我有一个包含3行数据的列表。 例如,如果我希望转到描述为无效的列表中的特定索引号,例如k [2]索引127,我该怎么做。 我希望能够在该索引处打印该元素的内容。 所有帮助非常感谢!
3回复

python 2.7 loop的引号索引

我使用的是Python 2.7。 你如何使用引号内的循环索引? 这出现在一个选项中。 我已经尝试将index放在quote()和%之后。 例如:
1回复

用Python打印元组索引

这个问题属于“是-可行,是-这很丑,是-可能有更好的方法”类别。 我想使用正则表达式将组拉出匹配项,然后打印组号和组值。 这是为了向某人展示正则表达式如何工作并跟踪每个组的值。 起作用的代码是: 有没有更好的方法来打印每个元组条目的索引?
7回复

在3列中条件为真时获取索引号

我对python中的某些代码有疑问。 我尝试在3个不同的列中满足条件TRUE时提取第一行的索引。 这是我正在使用的数据: 并且只有在存在3个“ True”条件时,我才需要获取索引号: 谢谢!
2回复

通过索引号引用字典元素

我有一些数据数组: 并创建dictionary使用a : 所以: 如我所知,在Python 3.x中,字典具有不变的元素顺序。 因此,据我了解,如果a是d中的第一个元素,则它总是成为第一个元素。 我的问题是,如果我的推理正确,是否有任何方法可以使用索引号引用元素?
1回复

将向量的索引打印到名称

我有这个向量: 该向量有51个索引,每个索引代表一种状态。 我有此代码及其输出: 基本上,输出是带有索引的值,我想打印而不是索引,状态, 举些例子,, 反之亦然。 所有51个索引的顺序应为以下状态:
5回复

在python中打印索引名称

我想知道如何在列表和子列表中输出每个索引(和子索引)的名称而不是值。 例如,假设我有一个主列表,其中有3个其他列表,每个列表包含5个子列表。 这是一个小例子来澄清: 如何打印出“List1”? 当我输入 它输出 我想要索引的实际名称,而不是它的值。 我