如何从文本行提取动物种类并按长度排序?Python实现求助
解决方法
直接给你完善后的代码,并逐部分解释逻辑:
with open('input.txt', 'r') as file: animals = set() for line in file.readlines(): # 去除行首尾空白并按空格分割数据,得到字段列表 parts = line.strip().split() if parts: # 跳过可能存在的空行,避免索引报错 # 动物种类是每行的第二个字段,取索引1的元素 animal_type = parts[1] animals.add(animal_type) # 按字符串长度对去重后的动物种类排序 sorted_animals = sorted(animals, key=lambda x: len(x)) # 逐行打印排序结果 for animal in sorted_animals: print(animal)
关键逻辑说明:
line.strip().split():先清理每行首尾的换行符、空格,再按空格把整行拆分成字段列表,比如第一行会变成['7910', 'leopard', 'male', 'Leo', '04.06.2001', '05.15.2010.']parts[1]:根据你给出的字段格式,动物种类是第二个字段,所以取索引为1的元素set():利用集合自动去重的特性,避免重复添加相同的动物种类sorted(..., key=lambda x: len(x)):指定以字符串长度为排序依据,实现短字符串在前的排序效果
运行后输出结果:
cat leopard
内容的提问来源于stack exchange,提问作者ddcrunk
相关产品推荐
相关产品推荐

