python - 如何解决这个排列编码问题?
问题描述
我记得在 Leetcode 中看到过一次,但不确定是哪一个。这就是问题所在。
我有一个清单['a','b','c']
。并且通过排列,我希望得到一个带有给定列表的各种可能列表组合的结果。
预期的
result = [['a'],['b'],['c'],
['a','b'],['b','c'],['a','c'],
['a','b','c']]
如果['a','b','c','d']
,它应该是
result = [['a'],['b'],['c'],['d'],
['a','b'],['a','c'],['a','d'],['b','c'],['b','d'],['c','d'],
['a','b','c'],['a','b','d'],['a','c','d'],['b','c','d'],
['a','b','c','d'],
]
如果我能从你们那里得到任何灵感,我将不胜感激。
解决方案
您可以使用itertools.combinations
它来实现:
from itertools import combinations
l = ['a', 'b', 'c', 'd']
c = [list(combinations(l, i)) for i in range(1, len(l) + 1)]
>>> c
[[('a',), ('b',), ('c',), ('d',)],
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')],
[('a', 'b', 'c'), ('a', 'b', 'd'), ('a', 'c', 'd'), ('b', 'c', 'd')],
[('a', 'b', 'c', 'd')]]
推荐阅读
- android - 谷歌地图未显示在底部导航活动片段(kotlin)中
- html - 如何更改引导程序 4 选择器的默认下拉颜色?
- php - 避免使用 Laravel 查询返回“未定义偏移量 0”表为空
- google-chrome-devtools - 如何在 Chrome 开发者控制台中访问 `copy` 功能,当它被`覆盖时
`? - makefile - 需要帮助了解为什么 ifeq 不起作用
- ios - swift UITableView中的didSelectRow事件延迟
- ios - IOS swift Web Socket SRWebSocket 设置响应超时
- excel - Microsoft Excel 公式 - 如何将函数中的单元格引用替换为其他函数
- api - (SSG-WSG) 检索课程 API 和课程详细信息 API 的返回值不匹配
- c - 如何修复“未调用的结构化函数”