我必须写一个函数,让你把一个新行星作为字典添加到列表中。问题是列表必须排序。
例如input: name = Earth
的输出是:{'name': 'Earth', 'density': '123.123'}] [{'name': 'Mars', 'density': 5.427}, {'name': 'Venus', 'density': 5.513},
而不是:[{'name': 'Mars', 'density': 5.427}, {'name': 'Venus', 'density': 5.513}, {'name': 'Earth', 'density': '123.123'}]
My code:
base = [
{"name": "Mars", "density": 5.427},
{"name": "Venus", "density": 5.513},
]
name = input("Enter the name of the planet: ")
destiny = input("Enter the density of the planet: ")
def addPlanet(name, destiny, base):
new_planet = {"name": name, "density": destiny}
base.append(new_planet)
return base
addPlanet(name, destiny, base)
print(base)
您可以这样做,而无需使用排序功能:
只需在
addPlanet()
之后添加base.sort(key=lambda x: x['name'])
顺便说一句,您的函数不必获取并返回
base
,因为它是全局函数在您的示例中,基本密度有数字(浮动)。但是,当您插入一个新字符串时,您并没有将字符串转换为float
因此,它缺少一个
float(density)
或如下所示:注意:这是信任用户键入的是数字,而不是名称。换句话说,如果用户类型(例如,
test
)将生成异常另外,这不是问题,但是您将变量命名为
destiny
,而不是density
要按顺序打印,您可以:
另外,您可以使用一个函数来实现这一点
相关问题 更多 >
编程相关推荐