请回答接下来的python题:.输入一系列动物名和其重量,重量单位可能是kg(千克),也可能是t(吨),动物名和重量之间用空格分隔,重量数值与单位间无分隔,最后一行输入:over表示输入结束。按重量从小到大排序并以二维列表形式输出。 输入样例: 海豚 228kg 北极熊 0.75t 企鹅 35kg 海豹 0.35t 白鲸 1.35t over 输出样例: [['企鹅', '35kg'], ['海豚', '228kg'], ['海豹', '0.35t'], ['北极熊', '0.75t'], ['白鲸',
时间: 2023-08-06 19:26:54 浏览: 258
python 实现输入和输出
5星 · 资源好评率100%
1. 可以使用正则表达式来提取动物名和重量数值及单位;
2. 可以将所有重量转换成同一单位(如kg),方便排序;
3. 排序可以使用sorted函数,key参数指定按重量排序;
4. 最后将排序后的结果转换成二维列表形式即可。
代码如下:
```python
import re
animals = []
while True:
line = input()
if line == 'over':
break
match = re.match(r'(\w+)\s+([\.\d]+)(kg|t)', line)
name, weight, unit = match.groups()
if unit == 't':
weight = float(weight) * 1000
animals.append([name, f"{weight:.2f}kg"])
animals.sort(key=lambda x: float(re.findall(r'[\.\d]+', x[1])[0]))
result = [[x[0], x[1].replace('kg', '')] for x in animals]
print(result)
```
阅读全文