python编程输入一系列动物名和其重量,重量单位可能是ke(千克),也可能是t(吨),动物名与重量间用空格分隔,重量数值与单位间无分隔。按重量由小到大排序并以二维列表形式输出
时间: 2025-01-29 13:12:15 浏览: 48
以下是一个Python程序,可以输入一系列动物名和其重量,并按重量由小到大排序后以二维列表形式输出:
```python
def convert_to_kg(weight_str):
# 将输入的重量字符串转换为千克
if weight_str.endswith('t'):
return float(weight_str[:-1]) * 1000
elif weight_str.endswith('ke'):
return float(weight_str[:-2])
else:
return float(weight_str)
def sort_animals_by_weight():
animals = []
# 输入动物和重量
while True:
input_str = input("请输入动物名和重量(格式:动物名 重量,例如:大象 5000ke),或输入'结束'停止输入:")
if input_str == '结束':
break
name, weight_str = input_str.split()
weight_kg = convert_to_kg(weight_str)
animals.append((name, weight_kg))
# 按重量排序
sorted_animals = sorted(animals, key=lambda x: x[1])
# 转换为二维列表
result = [[name, f"{weight:.2f}ke"] for name, weight in sorted_animals]
return result
# 主程序
sorted_animals = sort_animals_by_weight()
print("排序后的动物列表:")
for animal in sorted_animals:
print(animal)
```
这个程序的工作原理如下:
1. 定义了一个函数 `convert_to_kg()` 来将输入的重量转换为千克。
2. 在 `sort_animals_by_weight()` 函数中,我们首先创建一个空列表 `animals` 来存储动物信息。
3. 使用 while 循环不断接收用户输入,直到用户输入 "结束"。
4. 对于每次输入,我们将其拆分为动物名和重量字符串,然后调用 `convert_to_kg()` 函数将重量转换为千克。
5. 将动物名和转换后的重量作为一个元组添加到 `animals` 列表中。
6. 使用 `sorted()` 函数对 `animals` 列表进行排序,排序的关键字是重量。
7. 将排序后的结果转换为二维列表,其中重量保留两位小数并加上 "ke" 单位。
8. 最后,输出排序后的动物列表。
这个程序可以处理千克(ke)和吨(t)两种单位,并且能够正确地对动物按重量进行排序。
阅读全文