Python 检查其他列表中的列表项在点号或符号时是否返回false

Python 检查其他列表中的列表项在点号或符号时是否返回false,python,list,Python,List,我有一个大文件,其中包含一个列表,看起来像 word_list =['word', 'charles', 'luciana', '<charles', '@', 'yes!'] 这在检查时可以正常工作,例如返回以下内容的True: item_in_list('charles') item_in_list('luciana') 当我检查包含符号的位置时,它会失败,例如: item_in_list('@') item_in_list('<charles') 列表中的项目(“@”)

我有一个大文件,其中包含一个列表,看起来像

word_list =['word', 'charles', 'luciana', '<charles', '@', 'yes!']
这在检查时可以正常工作,例如返回以下内容的True

item_in_list('charles')
item_in_list('luciana')
当我检查包含符号的位置时,它会失败,例如:

item_in_list('@')
item_in_list('<charles')
列表中的项目(“@”)
_列表中的项目('这应该是您想要的:

word_list =['word', 'charles', 'luciana', '<charles', '@', 'yes!']

def item_in_list(word):
    if word in word_list:
        return True
    else:
        return False

假设列表包含上面作为列表对象显示的单词,除了在
any(word in item for items in list)
item
vs
items
中出现打字错误之外,我看不到任何错误

我在本地对代码进行了测试,如果您修复了输入错误,代码就可以正常工作

word_list =['word', 
            'charles',
            'luciana',
          ' <charles',
            '@',
            'yes!']

def item_in_list(word):
    if any(word in item for item in word_list):
        return True
    else:
        return False
    
print(item_in_list('@'))
print(item_in_list('<charles'))

需要补充的重要一点是,这两个实现与@timgeb注释不同。第一个实现执行子字符串搜索,第二个实现执行成员资格测试。

您所指的
列表中包含哪些内容?另外,尽量不要在代码中为变量名使用保留字。例如:
列表
assuming如果
list
包含上面作为列表对象显示的单词,我没有看到任何错误,除了
any中的拼写错误(项目中的单词代表列表中的项目)
item
items
相比,如果您纠正了打字错误,代码将按预期工作。第一个代码块上有一个列表示例。还有什么是
word_in_vocab
,与
item_in_list
相同?这可以简化为:
def item_in_in_list(word):如果word\u list中的word或False中的word返回True,则返回False
哈哈,我只是在键入它!或者只是
在word\u list中返回word
…谢谢。我仍然看到问题,但这似乎与我编译
word\u list
的方式有关。请注意,这两个实现并不等效。第一个执行子字符串搜索,第二个执行子字符串搜索membership-test。谢谢你指向@timgeb。我完全错过了。我会更新我的答案来添加它。没问题。我不确定OP需要第一个版本还是第二个版本。
def item_in_list(word):
    return True if word in word_list else False
word_list =['word', 
            'charles',
            'luciana',
          ' <charles',
            '@',
            'yes!']

def item_in_list(word):
    if any(word in item for item in word_list):
        return True
    else:
        return False
    
print(item_in_list('@'))
print(item_in_list('<charles'))
def item_in_list(word):
    return word in word_list