python - 如何“清理”,itertools组合输出?
问题描述
我正在尝试通过将每个元素(行)与其他元素组合来合并一些文本文件。
我有类似的东西:
wordlist.txt -> alfa
bravo
charlie
numlist.txt -> 123
234
345
spec.txt -> ?
!
%
$
我正在使用 itertools 来获取组合。
这是我的脚本:
row1 = []
f_w1 = open(dictionary_word, 'r')
for line in f_w1.readlines():
line = line.split()
row1.append(line)
...
inputdata = row1, row2, row3
combinations = list(itertools.product(*inputdata))
combinations_path = input('Enter a directory to save the combinations file: ')
with open(combinations_path + "userscombinations.txt", 'w') as f:
for s in combinations:
f.write(str(s)+ '\n')
with open(combinations_path + "userscombinations.txt", 'r') as f:
combinations = [line.rstrip('\n') for line in f]
print(combinations)
我需要获取一个文件,例如:
combinations.txt -> alfa123?
alfa123!
alfa123%
.......
charlie345$
但是使用 itertools 我得到类似的东西:
combinations.txt -> (['a'], ['1'], ['?'])
(['a'], ['1'], ['!'])
(['a'], ['1'], ['"'])
解决方案
假设你有
words = ["alfa", "bravo", "charlie"]
nums = ["123", "456", "789"]
specs = ["?", "!", "%", "$"]
您可以使用"".join
将每个组合减少为单个字符串。
from itertools import product
combinations = ["".join(x) for x in product(words, nums, specs)]
推荐阅读
- android - onBindViewHolder() 没有获得价值
- wordpress - Fishpig Magento 布局问题
- powerbi - 在 power bi GET 请求中获得响应 401
- django - 引导程序 4 模式中未显示 Django 表单
- redux - 如何在反应管理框架中重置过滤器值?
- c++ - 将字符串与文件中的数据进行比较
- xsd - 用于 UML 2.2 的 Scheme/XSD/spec 作为 XMI
- haskell - Haskell http客户端浏览器模拟
- wordpress - Wordpress:图片的网址包含上传// - 如何更改双斜杠?
- mysql - 在使用 GROUP BY 的查询中使用 rand() 时如何计算