通过比较列表和字符串中的值来创建新列表

2024-04-26 03:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在预定义的列表和查询字符串中有元素。我想检查query_str在预定义列表中是否有任何值,如果有,请将它们作为单独的元素附加到新列表中。你知道吗

predefined_lst = ['hello', 'goodbye', 'see you later']

query_str  = 'hello | are you having a nice day?  see you later |'

new_lst = []

我有语法将字符串与列表中的值进行比较,但无法将字符串中出现的值作为列表中的单个元素附加到新列表中。 在上面的例子中,new_lst应该是new_lst = ['hello', 'see you later']。你知道吗

当我打印new_lst时,我现在得到的结果就是真的。你知道吗

predefined_lst = ['hello', 'goodbye', 'see you later']
query_str  = 'hello | are you having a nice day?  see you later |'
new_lst = []
match = if any(string in query_str for string in predefined_lst)
new_lst.append(match)
print(new_lst)

Tags: 字符串you元素hello列表newqueryare
3条回答

当前您正在将TrueFalse值附加到行中的new_lst

match = if any(string in query_str for string in predefined_lst)

这是因为if ...返回布尔值TrueFalse。你知道吗

相反,试试这个

for x in predefined_list:
    if x in query_str:
        new_list.append(x)

或者作为一个列表组件

new_lst = [string for string in predefined_lst if string in query_str]

你在列表中迷失了理解力:

new_lst = [string for string in predefined_lst if string in query_str]

另一种方法,使用filter

>>> predefined_lst = ['hello', 'goodbye', 'see you later']
>>> query_str  = 'hello | are you having a nice day?  see you later |'
>>> 
>>> list(filter(lambda s: s in query_str, predefined_lst))
['hello', 'see you later']

相关问题 更多 >