如何找到数组中两个相似数字的索引?

时间:2019-03-18 09:09:48

标签: python arrays python-3.x python-2.7

这是我的程序,

item_no = []
max_no = 0
for i in range(5):
    input_no = int(input("Enter an item number: "))
    item_no.append(input_no)
for i in item_no:
    if no > max_no:
       max_no = no
high = item_no.index(max_no)
print (item_no[high])

示例输入:5, 6, 7, 8, 8

示例输出:8

如何更改程序以在数组中输出相同的最高数字,以及如何在(item_no)中找到结果的索引?

预期输出:8, 8

item_no中结果的预期索引:3, 4

2 个答案:

答案 0 :(得分:4)

我会使用max()来找到最大值。

item_no = []
for i in range(5):
    input_no = int(input("Enter an item number: "))
    item_no.append(input_no)

m = max(item_no)
max_values = [i for i in item_no if i == m]
max_values_indexes = [i for i, j in enumerate(item_no) if j == m]

print(max_values)
print(max_values_indexes)

使用5, 6, 7, 8, 8作为输入的输出:

[8, 8]
[3, 4]

答案 1 :(得分:1)

只需使用过滤器功能查找所有最大元素,然后查找索引的新列表即可。

items = []
for i in range(5):
    no = int(input("Enter an item number: "))
    items.append(no)

max_item = max(items)
highest = list(filter(lambda x: x==max_item, items))
index = [pos for pos, no in enumerate(items) if no == highest[0]]
print (highest)
print (index)

输入5、6、7、8、8,您将得到

[8, 8]
[3, 4]