gpt4 book ai didi

Python:检查字典中的键是否包含在字符串中

转载 作者:太空狗 更新时间:2023-10-30 01:57:34 24 4
gpt4 key购买 nike

假设我有一本字典,

mydict = { "short bread": "bread", 
"black bread": "bread",
"banana cake": "cake",
"wheat bread": "bread" }

给定字符串 "wheat bread breakfast today" 我想检查字符串中是否包含字典中的任何键。如果是这样,我想返回与该键关联的字典中的值。

我想为此使用列表理解。

这是我目前所拥有的。

mykeys = mydict.keys()
mystring = "wheat breads breakfast today"
if any(s in string for s in mykeys):
print("Yes")

这会按预期输出 Yes。我真正想做的是使用 s 变量索引到 mydict。但是 s 在 any() 函数中的作用域有限。所以以下不起作用。

if any(s in mystring for s in mykeys):
print(mydict[s])

任何解决方法?非常感谢!

最佳答案

只需遍历键并检查每个键。

for key in mydict:
if key in mystring:
print(mydict[key])

如果您想在列表推导式中执行此操作,只需在每次迭代时检查键即可。

[val for key,val in mydict.items() if key in mystring]

您还可以在初始循环中过滤字典键,而不是单独检查。

for key in (key in mydict if key in mystring):
print(mydict[key])

或者,如果您想使用它,您可以使用 filter

list(map(mydict.get, filter(lambda x:x in mystring, mydict)))

或者另一种使用过滤器的方式(不要实际使用这个,它非常不可读,只是为了好玩)。

list(filter(bool,[v*(k in mystring) for k,v in mydict.items()]))

关于Python:检查字典中的键是否包含在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38334937/

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