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

Python:如何实现按字符串中的数字对房屋信息字符串排序?

Python实现房屋信息按编号排序的函数

实现思路

  1. 拆分输入字符串:将原始字符串按换行符分割为单个房屋条目,同时清理每行前后的空白字符,过滤空行。
  2. 提取排序键:从每个条目中提取房屋编号(即House后的数字),转换为整数作为排序依据,确保是数值排序而非字符串排序。
  3. 排序并拼接:以编号为依据对条目升序排序后,重新拼接成符合格式要求的字符串。

代码实现

def sort_houses(house_str):
    # 拆分每行并清理空白,过滤空行
    house_items = [item.strip() for item in house_str.split('\n') if item.strip()]
    # 按房屋编号数值排序
    sorted_items = sorted(house_items, key=lambda entry: int(entry.split('House ')[1].split()[0]))
    # 按原格式拼接(每行保留对应缩进)
    return '\n         '.join(sorted_items)

# 测试示例
original = '''House 1 - New & Painted
         House 6
         House 2 - Used 
         House 4'''

result = sort_houses(original)
print(f"string= '{result}'")

代码说明

  • 拆分处理:split('\n')将字符串拆分为行列表,strip()去除每行前后的冗余空格,if item.strip()避免空行干扰。
  • 排序逻辑:通过split('House ')[1]获取House后的内容,再取第一个分割片段(即数字部分),转成整数后作为排序键,确保排序是按数字大小来的(比如不会出现House 10排在House 2前面的问题)。
  • 拼接格式:用'\n '拼接排序后的条目,匹配原示例的缩进格式,输出结果和目标格式一致。

内容的提问来源于stack exchange,提问作者odoo newbie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:50:32