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

技术需求:从给定列表筛选含1、2、3的数字并按升序输出

筛选包含1、2、3的数字并升序排列的解决方案

嘿,这个问题我来帮你搞定!要从数字列表里挑出同时包含1、2、3(不管顺序)的数字,再按升序排列,其实分两步走就很清晰:

核心思路

  • 筛选判断:对每个数字,检查它的字符形式是否同时包含'1'、'2'、'3'这三个数字——把数字转成字符串再转成集合,用集合的子集判断是最简洁高效的方式。
  • 排序输出:把筛选后的数字按升序排列,最后按要求的格式输出。

代码实现(Python为例)

# 示例输入的数字列表
input_numbers = [876321, 3245, 123]

# 定义必须包含的数字集合
required_digits = {'1', '2', '3'}

# 筛选符合条件的数字:检查required_digits是否是数字字符串集合的子集
filtered = [num for num in input_numbers if required_digits.issubset(set(str(num)))]

# 升序排序
sorted_result = sorted(filtered)

# 按示例格式输出(用顿号分隔)
print('、'.join(map(str, sorted_result)))

代码解释

  1. 把数字转成字符串再转成集合,能快速做成员判断,issubset()方法会直接返回True如果三个目标数字都存在。
  2. 列表推导式一行完成筛选,简洁明了,可读性拉满。
  3. sorted()函数默认就是升序排序,不需要额外参数,省心省力。
  4. 最后用join()把排序后的数字转成字符串并连接,输出完全符合示例的格式。

示例验证

针对你给出的示例输入876321、3245、123:

  • 3245的字符集合是{'3','2','4','5'},缺少'1',直接被排除;
  • 123和876321都包含全部三个数字,排序后得到123、876321,和示例输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:46