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

Python中如何生成列表内字典元素的全排列

如何生成含字典元素列表的所有全排列

嘿,这个需求用Python的标准库就能轻松搞定!不用自己写复杂的排列逻辑,itertools模块里的permutations方法正好能帮你生成所有可能的全排列。

直接上代码,一看就懂:

import itertools

# 你的原始列表
original_list = [{'x': 0, 'y': 0}, {'x': 1, 'y': 0}, {'x': 2, 'y': 2}]

# 生成所有全排列,把每个排列的元组转成列表
all_permutations = [list(perm) for perm in itertools.permutations(original_list)]

# 输出结果,和你要的格式完全一致
print(all_permutations)

代码说明:

  • itertools.permutations(original_list) 会生成原列表所有元素的全排列,返回的是一个迭代器,每个元素是元组类型的排列结果;
  • 我们用列表推导式 [list(perm) ...] 把每个元组转换成列表,这样就得到了你需要的二维数组格式。

运行后得到的结果就是你给出的示例:

[[{'x': 0, 'y': 0}, {'x': 1, 'y': 0}, {'x': 2, 'y': 2}],
 [{'x': 0, 'y': 0}, {'x': 2, 'y': 2}, {'x': 1, 'y': 0}],
 [{'x': 1, 'y': 0}, {'x': 0, 'y': 0}, {'x': 2, 'y': 2}],
 [{'x': 1, 'y': 0}, {'x': 2, 'y': 2}, {'x': 0, 'y': 0}],
 [{'x': 2, 'y': 2}, {'x': 0, 'y': 0}, {'x': 1, 'y': 0}],
 [{'x': 2, 'y': 2}, {'x': 1, 'y': 0}, {'x': 0, 'y': 0}]]

如果需要处理更大的列表,这个方法也同样适用,因为itertools是高效的标准库实现,性能比手写排列算法好很多哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:17:14