所以我是编码新手,我试图在同一个列表中获得最大和最小数字。我尝试使用max(min(和max + minprint(max + min(18, 20, 35, 285, 285.01, 300-1))我怎样才能把 18 和 300-1 放在一起?我有TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
2 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
你可以打电话max()和min()在名单上
l = [18,20,35,285,285.01,300-1]
print(min(l), max(l))
print(min(l) + max(l))
(18, 299)
317
饮歌长啸
TA贡献1951条经验 获得超3个赞
您必须单独运行每个操作,例如:
myvalues = 18, 20, 35, 285, 285.01, 300-1
print(max(myvalues) + min(myvalues))
唯一的另一种方法是对其进行排序并取出第一个和最后一个元素,例如:
minval, *_, maxval = sorted([18, 20, 35, 285, 285.01, 300-1])
print(maxval + minval)
但鉴于排序是O(n log n)可行的, wheremin和maxare O(n),通常最好只进行两次传递,一次用于min,一次用于max。
添加回答
举报
0/150
提交
取消