gpt4 book ai didi

Python for 循环不迭代

转载 作者:行者123 更新时间:2023-12-01 05:20:48 24 4
gpt4 key购买 nike

我试图循环遍历字符串列表,如果它们的长度等于用户输入的长度,则将它们添加到字典中。当最后一个循环运行时,它只运行一次。我知道这一点是因为字典中的第一个单词有 8 个字符长,当用户输入为 8 时,它只打印该单词,而不打印其他 8 个字符的单词。如果输入为 3,则打印一个空字典。为什么我的循环没有迭代列表行列表中的所有单词?

wordLength = raw_input("Enter a word length ")
word_dict = {}
infile = open("dictionary.txt")

for line in infile:
line = line.strip()
linelist = line.split(" ")


for word in linelist:
if len(word) == int(wordLength):
if len(word) in word_dict:
word_dict[len(word)] = word_dict[len(word)].append(word)
else:
word_dict[len(word)] = word

print word_dict

最佳答案

每次运行第一个循环时,它都会将 linelist 设置为新值,覆盖任何旧值。第一个循环运行后,linelist 将仅包含文件最后一行的split 结果。每次处理文件的一行时,您都会丢弃对前一行所做的任何操作。

如果您想构建字典文件中所有单词的列表,则需要创建一个列表并在 for line in infile 循环的每次迭代中附加到该列表。

此外,如果每一行只有一个单词,则在每一行上使用 split 没有多大意义,因为不会进行任何拆分。

关于Python for 循环不迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com