从单词列表中生成产品的Pythonic方法

2024-10-02 18:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过Coursera学习Python(查克博士!)刚刚完成了我在家庭作业之外的第一个“有用”的个人剧本。你知道吗

它基本上使用两个单词/数字列表,并从这些项目中创建所有可能的组合。我将使用它来暴力破解一个旧的密码保护的文件,我确信其中的元素(但不是组合)。你知道吗

经过几个小时的摆弄,剧本终于开始运作了。 我的问题是,这是否是一个'Python'的方式来编写代码。从一开始就用正确的方法学习可能很重要。你知道吗

import itertools

beginfile = open('/Users/Mat/Python/combinations/begin.txt')
beginlist = []
for line in beginfile:
    line = line.rstrip()
    beginlist.append(line)
    if line.islower():
        capital = line.title()
        beginlist.append(capital)

endfile = open('/Users/Mat/Python/combinations/end.txt')
endlist = []
for line in endfile:
    line = line.rstrip()
    endlist.append(line)

x = itertools.product(beginlist, endlist)
counter = 0
for i in x:
    print("".join(i))
    counter += 1

print ('TOTAL:', counter, 'items')

Tags: intxtforlinecounteropenusersitertools
1条回答
网友
1楼 · 发布于 2024-10-02 18:26:56
import itertools

with open('/Users/Mat/Python/combinations/begin.txt') as beginfile:
    beginlist = [line.rstrip().title() for line in beginfile if line.rstrip().islower()]

with open('/Users/Mat/Python/combinations/end.txt') as endfile:
    endlist = [line.rstrip() for line in endfile]

x = itertools.product(beginlist, endlist)
data = ["".join(i) for i in x]

print ('TOTAL:', len(data), 'items')

相关问题 更多 >