列表嵌套—动物重量排序 【问题描述】输入一系列动物名和其重量,重量单位可能是kg,也可能是t,动物名、与重量间空格分隔, 重量数值与单位间无分隔。按重量由小到大排序以二维列表形式输出。 【输入形式】每次输入一个动物名,以及其重量和单位,动物名与重量间用空格分隔,输入-1时结束输入。 【输出形式】以二维列表形式输出,按重量由小到大升序排序。 【样例输入】 海豚 228kg 北极熊 0.75t 企鹅 35kg 海豹 0.35t 白鲸 1.35t -1 【样例输出】 [['企鹅', '35kg'], ['海豚', '228kg'], ['海豹', '0.35t'], ['北极熊', '0.75t'], ['白鲸', '1.35t']] 【样例说明】 【评分标准】 PYTHON 1 控制台
时间: 2023-12-09 08:03:18 浏览: 93
以下是Python代码实现:
```python
animal_list = []
while True:
animal_input = input()
if animal_input == '-1':
break
else:
animal_list.append(animal_input.split())
# 定义排序函数
def sort_key(item):
weight = float(item[1][:-2])
if item[1][-1] == 't':
weight *= 1000
return weight
# 对动物列表按重量排序
animal_list_sorted = sorted(animal_list, key=sort_key)
print(animal_list_sorted)
```
程序首先定义一个空列表`animal_list`,然后进入一个循环,循环中使用`input()`函数获取用户输入的动物名和重量。如果输入为`-1`,则跳出循环;否则,将输入按空格分隔后加入`animal_list`中。这样,用户可以一直输入直到输入为`-1`为止。
接下来,定义一个`sort_key()`函数,它用于指定排序规则。这个函数首先将重量字符串中最后两个字符(即重量单位)之前的部分转化为浮点数,并根据重量单位将数值乘以1000(如果重量单位为"t"),得到动物的权重。然后,将这个权重作为排序关键字。
最后,程序使用`sorted()`函数对`animal_list`按照权重从小到大排序,并将排序结果存储在`animal_list_sorted`中。程序输出`animal_list_sorted`,即按照重量从小到大排列的所有动物及其重量的二维列表。
阅读全文