【发布时间】:2021-12-18 03:20:53
【问题描述】:
if __name__ == '__main__':
l=[]
s=[]
for _ in range(int(input())):
name = input()
score = float(input())
l.append(name)
s.append(score)
mx=max(s[0],s[1])
smin=min(s[0],s[1])
n=len(s)
for i in range(2,n):
if(mx>s[i]):
smin=mx
mx=s[i]
elif(s[i]<smin) and \
max!=s[i]:
smin=s[i]
ind=smin
sminval=s.index(ind)
g=0
for i in range(n):
index_sec=s.index(s[i])
print(index_sec)
if(smin==s[i])and\
sminval!=index_sec:
x=s[i]
g=g+1
y=l[sminval]
输入
5
Harry
37.21
Berry
37.210
Tina
37.2
Akriti
41
Harsh
39
输出
0
0
2
3
4
虽然我得到了这种类型的索引值(i)。我无法找到正确的元素索引, 我需要解释为什么会这样?
【问题讨论】:
-
mx和smin应该包含什么?我不明白设置它们的if语句中的逻辑。 -
index()返回第一个匹配值的索引。如果列表中有重复项,您将获得它们中最低的索引。 -
您的列表在索引 0 和 1 中有
37.21,因此它会打印两次0。
标签: python python-3.x list for-loop