python - 有没有办法找到每个组合以从每个列表中选择一个元素(在列表中)?
问题描述
我试图找到所有组合以从列表中的每个列表中准确选择一个元素。(我更喜欢计算速度最快的方法。)
示例: 如果我的列表是 [[1], [2,3], [4,5,6]] 我希望得到以下结果(以任何顺序): [[1,2,4], [1 ,2,5], [1,2,6], [1,3,4], [1,3,5], [1,3,6]]
我尝试在诸如 itertools 之类的模块中查找功能但没有任何成功,并且不知道如何启动它。
我正在考虑执行以下操作,但我不知道如何完成此操作:查找要查找的排列数(此处称为 m):
m = 1
for letter in letters:
m *= len(letter)
然后设置一个for循环:
for i in range(m):
然后通过循环遍历列表中的所有列表并获取一个元素来找到每个组合。我正在考虑使用模数(%)函数以某种方式进行选择,但我不知道如何使其工作。
解决方案
听起来像你想要的itertools.product()
:
>>> for x in itertools.product([1], [2,3], [4,5,6]):
... print(x)
...
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)
推荐阅读
- android - 任务“:flutter_plugin_android_lifecycle:javaPreCompileDebug”执行失败
- java - 根据 m 找到对的算法
- python - 无法从 GCE 调用 discovery.build('compute', 'v1', credentials=credentials)
- c# - 尝试使用 IBackgroundTaskQueue 时未设置对象引用
- java - 如何根据我的activity_main中的edittext中的文本更改片段中的imageview图像
- windows - 在 Windows 上运行“git log”时收到“找不到命令”错误消息
- javascript - 如何将 android studio(开发移动应用程序)与服务器中的 phpmyadmin 数据库连接起来?
- javascript - 为什么onhover css背景图像在第一次没有正确加载?
- excel - 通过 Excel VBA 粘贴 HTML 表格的问题,错误处理似乎不起作用
- php - PGSQL Codeigniter 自动将列字符串转换为小写