Pythonic从单词列表制作产品的方法

时间:2017-05-22 16:20:55

标签: python

我正在通过Coursera(Chuck博士!)学习Python,并在家庭作业之外完成了我的第一个“有用的”个人脚本。

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

经过数小时的摆弄后,剧本终于正常运作。 我的问题是,如果这是一种编写代码的“Pythonic”方式。从一开始就以正确的方式学习它可能很重要。

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')

1 个答案:

答案 0 :(得分:1)

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')