按重量排序动物列表:Python代码实现
按重量排序动物列表:Python代码实现
本代码使用Python实现按重量排序动物列表的功能。用户可以输入动物名称和重量(单位kg或t),程序会自动将数据转换为统一单位并按重量从小到大排序输出。
输入格式 每次输入一个动物名,以及其重量和单位,动物名与重量间用空格分隔,直接输入回车时结束输入(此时输入的字符为空字符串)。
提示: 判断输入是否为''空字符串,为True则结束输入。
输出格式 以二维列表形式输出,按重量由小到大升序排序。
示例 1 输入:
北极熊 0.75t
企鹅 35kg
海豹 0.35t
海豚 228kg
白鲸 1.35t
输出:
[['企鹅', '35kg'], ['海豚', '228kg'], ['海豹', '0.35t'], ['北极熊', '0.75t'], ['白鲸', '1.35t']]
代码内容:
animals = []
while True:
animal = input()
if animal == '':
break
animals.append(animal.split())
def weight_key(animal_info):
weight_str = animal_info[1]
if weight_str.endswith('kg'):
return float(weight_str[:-2])
elif weight_str.endswith('t'):
return float(weight_str[:-1]) * 1000
else:
return 0
animals.sort(key=weight_key)
print(animals)
代码解释:
- 创建空列表
animals用于存储输入的动物信息。 - 使用
while True循环 不断接收用户输入,直到用户输入空字符串。 - 使用
input()函数接收用户输入,并使用split()方法将输入字符串分割成动物名称和重量信息,并将其添加到animals列表中。 - 定义函数
weight_key(),该函数接受一个动物信息列表,并返回其对应的重量数值(单位统一为 kg)。 - 使用
sort()方法对animals列表进行排序,并将key参数设置为weight_key函数,以根据重量进行排序。 - 使用
print()函数输出排序后的动物信息列表。
代码说明:
- 代码中使用了
endswith()方法判断重量单位,并根据单位进行相应的单位转换,将所有重量都转换为 kg 单位。 - 代码中使用
sort()方法对列表进行排序,并使用key参数指定排序依据,这里使用weight_key()函数作为排序依据,实现了按重量进行排序。 - 代码中使用了列表推导式
animal_info[1],方便简洁地获取动物信息列表中的重量信息。
优化建议:
- 可以使用
try-except语句对用户输入进行错误处理,例如,当用户输入的重量单位不为 kg 或 t 时,可以提示用户重新输入。 - 可以使用更具描述性的变量名,例如,将
animal_info变量名改为animal_data,以更清晰地表达其含义。 - 可以将代码封装成函数,以提高代码的可读性和可重用性。
希望本代码能帮助你更好地理解如何使用 Python 代码实现按重量排序动物列表的功能。
原文地址: https://www.cveoy.top/t/topic/ozAQ 著作权归作者所有。请勿转载和采集!