如何显示输入的数字在哪个位置?

2024-04-25 00:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,一旦我将其排序以找到“最大值”,我需要显示输入这个数字的位置。你知道吗

你知道怎么做吗?你知道吗

我做了这个代码来接收和排序列表,但我不知道如何接收“数据”的初始位置。你知道吗


liste = []

while len(liste) != 5:
    liste.append (int(input("enter number :\n")))

listeSorted = sorted(liste)
print("the biggest number is : ", listeSorted[-1]) 

Tags: 数据代码number列表inputlen排序数字
2条回答

使用max函数,而不是通过对列表进行排序来查找列表的最大值:

largest_val = max(list)

要查找列表中第一个出现的值,请使用.index方法。你知道吗

position = list.index(largest_val)

另一个带有sorted()的解决方案(对于更一般的情况,例如,如果您还需要第二个、第三个等“最大值”):

sorted_idx_and_val = sorted(enumerate(liste), key=lambda x:x[1])
# e.g. if liste = [2, 10, 4, 6] then enumerate(liste)   = [(0, 2), (1, 10), (2, 4), (3, 6)]
#                                and sorted_idx_and_val = [(0, 2), (2, 4), (3, 6), (1, 10)]

largest_val     = sorted_ind_and_val[-1][1]
largest_val_idx = sorted_ind_and_val[-1][0]

second_largest_val     = sorted_ind_and_val[-2][1]
second_largest_val_idx = sorted_ind_and_val[-2][0]
# ...

enumerate()提供一个包含(index, value)元组的列表。你知道吗

sorted()的参数key是一个lambda来“预处理”要排序的键值-这里我们告诉sorted()只使用来自(index, value)元素(x)的valuex[1])。你知道吗

相关问题 更多 >