为什么在这两个循环中打印不同

时间:2019-05-24 14:40:09

标签: python-2.7

例如,我有t=[1.0, 1.0, 1.6, 1.125, 1.5]

我想打印具有最小值min(t)的元素的索引,但是我希望它们从1开始 因此,对于此示例,我要打印1 2

当我这样做时它正在工作:

for j in range(len(t)):
    if t[j]==min(t):
        print j+1,`

输出:

1 2

但是它不起作用:

for j in t:
    if j==min(t):
        a=t.index(j)
        print a+1,`

输出:

1 1

那是为什么?

1 个答案:

答案 0 :(得分:3)

您的错误在这里

a = t.index(j)

t.index(j)将为您提供该值的第一个索引。

您可以做到这一点:

m = min(t)
cont = 0
for j in t:
    if j == m:
        print cont+1,
    cont += 1

for idx, val in enumerate(t):
    if val == m:
        print idx + 1,