【发布时间】:2020-04-13 20:36:24
【问题描述】:
所以基本上我有这个字典,我需要在不使用 min 和 max 函数的情况下找到最小值和最大值,我需要返回键而不是值。下面是我目前拥有的它返回第一个键的最小值和最大值而不查看其余部分,我不知道如何让它返回键,但感谢任何帮助。
sol = {"Uranus":[2750, 3000, 2880], "Mercury":[46, 70, 57], "Earth":[147, 152, 150], "Venus":[107, 109, 108], "Mars":[205, 249, 228], "Saturn":[1350, 1510, 1430], "Jupiter":[741, 817, 779], "Pluto":[4440, 7380, 5910], "Neptune":[4450, 4550, 4500]}
def distance(sol, close=True):
for name in sol:
l = len(sol)
closefar = sol[name][0]
for i in range(1, l):
if close:
if sol[name][i] < closefar: closefar = sol[name][i]
else:
if sol[name][i] > closefar: closefar = sol[name][i]
return closefar
print("Min:", distance(sol, True))
print("Max:", distance(sol, False))
【问题讨论】:
-
这里的“找到最小值和最大值”是什么意思?找出所有值的最小值和最大值?为什么不能使用
min和max函数? -
是的,对不起所有的价值观
-
为什么不能使用 min 和 max?
-
为什么
return在循环内? (这说明它从不返回任何其他内容。) -
不过,您的代码还有很多其他问题。
for i in range(1, l)是。每次只遍历sol的长度,这对找到每个子列表的最小值和最大值没有帮助。
标签: python-3.x dictionary