python - 您如何获取组合结果并保存到列表中?
问题描述
我知道如何使用组合生成 3 位组合,并且可以显示结果,但我一生无法弄清楚如何从这一步将生成的 3 位组合列表保存到实际列表中我可以保存到一个txt文件。任何帮助,将不胜感激。
我正在尝试生成一个 3 位组合列表,然后我可以测试我编写的脚本以获取列表的 txt 文件并针对 3 位密码保护文件对其进行测试。我真的只是想帮助弄清楚如何从组合中获取结果以保存到列表中。
comb = combinations([1, 2, 3,4,5,6,7,8,9], 3)
for i in list(comb):
print i
如果我能弄清楚,期待结果,组合将运行,我会将结果保存到我可以写入文件的列表中。
解决方案
您可以直接转换为列表...
from itertools import combinations
comb_list = list(combinations([1, 2, 3,4,5,6,7,8,9], 3))
> [(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 2, 7), (1, 2, 8), (1, 2, 9), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 3, 9), (1, 4, 5), (1, 4, 6), (1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 5, 6), (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 7, 8), (1, 7, 9), (1, 8, 9), (2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 3, 9), (2, 4, 5), (2, 4, 6), (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 5, 6), (2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 7, 8), (2, 7, 9), (2, 8, 9), (3, 4, 5), (3, 4, 6), (3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 5, 6), (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 7, 8), (3, 7, 9), (3, 8, 9), (4, 5, 6), (4, 5, 7), (4, 5, 8), (4, 5, 9), (4, 6, 7), (4, 6, 8), (4, 6, 9), (4, 7, 8), (4, 7, 9), (4, 8, 9), (5, 6, 7), (5, 6, 8), (5, 6, 9), (5, 7, 8), (5, 7, 9), (5, 8, 9), (6, 7, 8), (6, 7, 9), (6, 8, 9), (7, 8, 9)]
编辑
获取 3 位字符串
[str(a[0])+str(a[1])+str(a[2]) for a in combinations([1,2,3,4,5,6,7,8,9], 3)]
> ['123', '124', '125', '126', '127', '128', '129', '134', '135', '136', '137', '138', '139', '145', '146', '147', '148', '149', '156', '157', '158', '159', '167', '168', '169', '178', '179', '189', '234', '235', '236', '237', '238', '239', '245', '246', '247', '248', '249', '256', '257', '258', '259', '267', '268', '269', '278', '279', '289', '345', '346', '347', '348', '349', '356', '357', '358', '359', '367', '368', '369', '378', '379', '389', '456', '457', '458', '459', '467', '468', '469', '478', '479', '489', '567', '568', '569', '578', '579', '589', '678', '679', '689', '789']
这相当于
ans = []
for comb in combinations([1,2,3,4,5,6,7,8,9], 3):
ans.append(str(comb[0])+str(comb[1])+str(comb[2]))
或者更好的是使用 join
''.join(str(num) for num in (1, 2, 3))
> '123'
给
[''.join(str(num) for num in a) for a in combinations([1,2,3,4,5,6,7,8,9], 3)]
推荐阅读
- android - 根据 Firebase 中的日期对事件进行排序
- ruby-on-rails - Rails 如何运行自定义查询并返回地图数组
- php - 如何在 PHP 中进行某些操作后检查对象是否发生了变异?
- java - 适合任务的设计模式
- sql - 枢轴式排序 - SQL Oracle
- javascript - 如何从选择元素 ID 中获取 select2 的类 .select2-search?
- javascript - Ionic __Azure AD 身份验证错误:用户取消了流程
- php - 如何:使用 PHP 在 Azure 搜索中进行分页搜索
- java - 解析显示错误日期的日期
- java - java.util.logging 不会记录到文件