如何在python中多次遍历每个单词?

时间:2018-11-10 19:19:56

标签: python

我正在编写一个脚本,该脚本应在文件中包含一组单词,以25种不同的方式对其进行加密,然后将结果输出到另一个文件中。

因此,到目前为止,我所拥有的是一个脚本,其中包含所有单词,仅对它们加密一次并输出列表。我无法弄清楚如何对每个单词进行25次加密(也就是说,每个单词中要制作25个新单词)

到目前为止,这是我的代码:

for c in range(len(text)):
    lister = text[c]
    s += 1
    print("Cipher number %s: " % c + encrypt(lister, s))
    output_file.write("\n")
    output_file.write(encrypt(lister, s))

text是包含单词的文件,加密功能将接收该列表,s是加密的移位数,这意味着s = 1是一种加密方式,而s = 2是另一种加密方式。同一个字。现在,代码会以不同的加密方式对所有单词进行加密,因为每次for循环经过一个新单词时s都会改变其值

仅在s = 1到s = 25加密前一个单词25次之后,我才能使for循环更改s的值?

2 个答案:

答案 0 :(得分:1)

您正在寻找的是一个嵌套循环。简而言之,您需要为每个单词做25次任务。

for c in range(len(text)):
    lister = text[c]
    for s in range(1, 26): #goes from 1 to 25.
        print("Cipher number %s: " % c + encrypt(lister, s))
        output_file.write("\n")
        output_file.write(encrypt(lister, s))

我还应该提到python为我们提供了一种使用“ in”运算符遍历列表的更好方法。

for lister in text:
    for s in range(1, 26): #goes from 1 to 25.
        print("Cipher set for word ",lister)
        output_file.write("\n")
        output_file.write(encrypt(lister, s))

如果在遍历列表时需要两个索引号,请改为使用枚举。

答案 1 :(得分:0)

我会在当前循环内部使用嵌套循环。使该外部循环每次迭代运行25次,并在内循环每次迭代时增加s的值。

换句话说,将当前循环的主体放在for s in range(25):中。这又应该放在for c in range(len(text)):中。这有帮助吗?