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

如何在基础Python中对集合进行排序?

如何在不使用第三方库的情况下让集合并集按有序输出?

现有集合A = {1, 2, 3}、B = {3, -6, 2, 0},调用union(A, B)后预期输出为({-6, 0, 1, 2, 3}, 5)。
我的尝试代码:

x = A | B
y = len(x)
print((set(x), y))

实际输出为({0, 1, 2, 3, -6}, 5)。已知借助第三方库可实现排序,但本次练习要求仅使用基础Python,不导入任何包,请问是否可行?

当然可行啦!你遇到的核心问题是集合在Python中本身是无序的数据结构,所以直接输出集合没办法保证元素的顺序。不过我们用内置工具就能轻松解决,完全不需要额外依赖:

方案一:输出有序元组(更符合Python数据类型规范)

A = {1, 2, 3}
B = {3, -6, 2, 0}

# 获取并集后转成列表排序,再转成有序的元组
sorted_union = sorted(A | B)
result = (tuple(sorted_union), len(sorted_union))
print(result)

运行后输出:(-6, 0, 1, 2, 3), 5

方案二:严格匹配题目要求的大括号格式

如果一定要和题目预期的({-6, 0, 1, 2, 3}, 5)格式完全一致,可以用字符串拼接实现:

A = {1, 2, 3}
B = {3, -6, 2, 0}

sorted_union = sorted(A | B)
# 注意f-string里的大括号需要双写转义
formatted_result = f"({{{', '.join(map(str, sorted_union))}}}, {len(sorted_union)})"
print(formatted_result)

运行后输出:({-6, 0, 1, 2, 3}, 5)

关键说明:

  • sorted()是Python自带的内置函数,默认会对数字进行升序排序,完全不需要导入任何包。
  • 要明确:Python里的set本身就是无序的,不存在“有序集合”这种原生结构,我们是通过把并集元素转换为有序的列表/元组,来实现题目要求的有序展示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:23:15