You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文本行提取动物种类并按长度排序?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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:50:26