这是我的节目,

item_no = []
max_no = 0
for i in range(5):
    input_no = int(input("Enter an item number: "))
    item_no.append(input_no)
for no 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

如何更改程序以输出数组中相同的最高数字?

预期输出:[8, 8]

推荐答案

只需使用max获得最大值,然后使用count,并将两者结合在一个列表中.

item_no = [5, 6, 7, 8, 8]

max_no = max(item_no)
highest = [max_no for _ in range(item_no.count(max_no))]
print(highest)  # -> [8, 8]

请注意,如果最大值只出现一次,这将返回单个项目的列表.


更接近您当前编程风格的解决方案如下:

item_no = [5, 6, 7, 8, 8]
max_no = 0  # Note 1 
for i in item_no:
    if i > max_no:
        max_no = i
        high = [i]
    elif i == max_no:
        high.append(i)

当然,结果与上述相同.

笔记

  1. 我假设你只处理N*(1, 2, ...)个数字.如果不是这样,则应使用-math.inf初始化.

Note that the second code snippet is less efficient than the first by quite a margin. Python allows you to be more efficient than these explicit, fortran-like loops and it is more efficient itself when you use it properly.

Python-3.x相关问答推荐

使用 pandas 数据帧映射到中转(节点)点的跨容量请求

在 Django 中执行 JSONRenderer.render(serialized_student_data.data) 时遇到问题

如何在 django 中没有循环的情况下获得前键的前键?

BeautifulSoup 和 pd.read_html - 如何将链接保存到最终数据框中的单独列中?

如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出

将名字转换成姓氏、首字母和中间字母的格式

python用户输入5个偶数并打印最大的

为什么 pip3 在 Ubuntu 20.04 上安装/更新软件包后要创建一个 kdewallet?

未在 Django 中定义主键类型警告时使用的自动创建主键

Django - 无法从“解耦”导入名称“配置”

具有不均匀间隙的 Python 范围

有没有办法从 dict 和 collections.abc.MutableMapping 一起继承?

为什么 time.sleep() 准确性受 Chrome 影响?

如何修复 AttributeError:部分初始化的模块?

如何从 yml 文件制作新的 anaconda env

*(单星)和/(斜线)作为独立参数有什么作用?

如果一个失败,如何取消收集中的所有剩余任务?

是否有 Python 3.x 发布生命周期的官方指南?

Python3.7:加载共享库时出错:libpython3.7m.so.1.0

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签