输人一系列动物名和其重量,重量单位可能是 1g(千克),也可能是!(吨),动物名与重量间用空格分隔,重量数值与单位间无分隔。按重量由小到大排序并以二维列表形式输出
时间: 2024-02-26 19:59:23 浏览: 70
好的,这个问题可以用以下代码解决:
```python
data = input("请输人动物名和重量,用空格分隔,多组数据用分号隔开:")
data_list = data.split(";")
animal_weight_list = []
for item in data_list:
if item:
animal, weight_str = item.split()
weight = float(weight_str[:-1])
if weight_str.endswith("吨"):
weight *= 1000
animal_weight_list.append([animal, weight])
animal_weight_list.sort(key=lambda x: x[1])
print(animal_weight_list)
```
这里首先将多组数据用分号隔开,然后对每组数据进行处理,将动物名和重量分别提取出来,并且将重量统一转换为千克为单位。最后将每组动物名和重量存储到二维列表 `animal_weight_list` 中,并且使用 `sort()` 函数对其进行排序。排序时,使用 `lambda` 表达式指定按照列表中第二个元素(重量)进行排序。最后输出排序后的结果。
阅读全文