Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 迭代列表并尝试删除(';\n';)时,列表将返回None,而不是列表中的元素_Python_Loops - Fatal编程技术网

Python 迭代列表并尝试删除(';\n';)时,列表将返回None,而不是列表中的元素

Python 迭代列表并尝试删除(';\n';)时,列表将返回None,而不是列表中的元素,python,loops,Python,Loops,对Python来说相当陌生,但我正在尝试制作一个拼字字谜解算器,它将在一个大文本文件中循环,并使用用户给定的7个字母框架检查字谜。我正在使用is_anagram函数,使用sorted()按字母顺序列出单词中的字母,然后使用if语句查看字典中排序的单词是否与提供的字母排序框相等。由于正在搜索的字母来自一个长列表,因此列表中有一个由单词创建的“\n”,这使得它们不相等。我正在尝试设置迭代,以便在比较之前从列表中删除'\n',但出于某种原因,它将列表返回为None,而不是列表减去'\n'。不知道为什么

对Python来说相当陌生,但我正在尝试制作一个拼字字谜解算器,它将在一个大文本文件中循环,并使用用户给定的7个字母框架检查字谜。我正在使用
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。