如何使用通配符key valu从dict列表中检索dict

2024-04-24 01:13:17 发布

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

我有一大串字典,每个字典都有一个键:值为正常。在下面的示例中,我想获取与name键的特定通配符键值相匹配的所有dict。在

例如,如果下面的名称键的值的格式是A_B_C_D(例如John_Michael_Joseph_Smith),那么如何获取所有搜索格式为A*D(例如John*Smith)的dict或者格式化A_B*(例如John_Michael*)等?在

mylist=[{id:value,name:value,parent:value},
        {id:value,name:value,parent:value},
        {id:value,name:value,parent:value}...]

Tags: name名称id示例字典value格式john
1条回答
网友
1楼 · 发布于 2024-04-24 01:13:17

您的模式似乎使用UNIX文件名模式;*匹配任意数量的字符。您可以使用^{} function生成筛选器:

>>> from fnmatch import fnmatch
>>> fnmatch('John_Michael_Joseph_Smith', 'John*Smith')
True
>>> fnmatch('John_Michael_Joseph_Smith', 'John_Michael*')
True

您可以在列表理解中使用筛选器来生成匹配字典的新列表,根据模式测试每个dictionary['name']值:

^{pr2}$

这里,namesearch返回一个列表字典,其'name'值与给定模式匹配:

matched = namesearch('John*Smith', mylist)

相关问题 更多 >