Python 迭代列表并尝试删除(';\n';)时,列表将返回None,而不是列表中的元素
对Python来说相当陌生,但我正在尝试制作一个拼字字谜解算器,它将在一个大文本文件中循环,并使用用户给定的7个字母框架检查字谜。我正在使用Python 迭代列表并尝试删除(';\n';)时,列表将返回None,而不是列表中的元素,python,loops,Python,Loops,对Python来说相当陌生,但我正在尝试制作一个拼字字谜解算器,它将在一个大文本文件中循环,并使用用户给定的7个字母框架检查字谜。我正在使用is_anagram函数,使用sorted()按字母顺序列出单词中的字母,然后使用if语句查看字典中排序的单词是否与提供的字母排序框相等。由于正在搜索的字母来自一个长列表,因此列表中有一个由单词创建的“\n”,这使得它们不相等。我正在尝试设置迭代,以便在比较之前从列表中删除'\n',但出于某种原因,它将列表返回为None,而不是列表减去'\n'。不知道为什么
is_anagram
函数,使用sorted()
按字母顺序列出单词中的字母,然后使用if
语句查看字典中排序的单词是否与提供的字母排序框相等。由于正在搜索的字母来自一个长列表,因此列表中有一个由单词创建的“\n”
,这使得它们不相等。我正在尝试设置迭代,以便在比较之前从列表中删除'\n'
,但出于某种原因,它将列表返回为None
,而不是列表减去'\n'
。不知道为什么。有人能帮忙吗?代码如下:
def is_anagram(word):
scrabble_dict = open('sowpods.txt')
for x in scrabble_dict:
x = sorted(x)
x = x.remove('\n')
word = sorted(word)
if word == x:
print(word)
删除换行符后,无需再次指定x
def is_anagram(word):
scrabble_dict = open('sowpods.txt')
for x in scrabble_dict:
x = sorted(x)
x.remove('\n')
word = sorted(word)
if word == x:
print(word)
检查这个问题:基本上移除不会像那样工作。你不需要
x=x.remove('\n')
只要x.remove('\n')
就足够了。回答问题!谢谢排序后打印的字不会只是打印乱码吗?也不是word
播放器机架上的字母,而是x
是字典中的实际单词吗?如果我的理解是正确的,您希望在排序之前保存一份x
,如果存在匹配项,请打印保存的副本,以便您实际获得一个单词?另外,在word中使用if x
可能是一个更好的调用,因为它允许您检查比word
小的词典条目。是的,在我解决了remove的问题后,我注意到了这一点。我只是设置y=sorted(x)并使用y作为变量,然后让函数返回x。