首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python2.7中有没有使用通配符搜索python字典的方法?

在python2.7中有没有使用通配符搜索python字典的方法?
EN

Stack Overflow用户
提问于 2018-12-12 06:36:02
回答 1查看 90关注 0票数 0

我有一个从api调用返回的python字典文件。字典中键的拼写各不相同,无法预先知道拼写是什么。例如,api调用可以返回以下三个字典中的任何一个。

dict ={‘狗’:‘一些字符串’,‘猫’:‘一些字符串’}

dict ={‘野狗’:‘一些字符串’,‘猫’:‘一些字符串’}

dict ={‘狗’:‘一些字符串’,‘猫’:‘一些字符串’}

假设我想从字典中提取狗密钥的值值,而不知道api将返回哪个字典。我该怎么做呢?我可以使用通配符进行搜索吗?现在我使用了一堆if语句,如下所示:

代码语言:javascript
运行
复制
for dict_key in dict:
  if dict_key == 'dogs':
    value = dict['dogs']
    return value
  elif dict_key == 'wild dogs':
    value = dict['wild dogs']
    return value
  elif dict_key == 'DOGS':
    value = dict['DOGS']
    return value

但这并不是很有效,因为"dog“有很多可能的排列,而且执行起来也不是很有时间效率。我想知道我是否可以做这样的事情

代码语言:javascript
运行
复制
for dict_key in dict:
 if dict_key contains the letters 'd', 'o' and 'g' regardless of capitalization:
   get the correct_key
   return dict[correct_key]

或者其他类似的东西。在python中这是可能的吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 06:57:14

您可以通过myDict.keys()免费访问myDict的键(我强烈建议不要为您的变量使用built-in name )。

这意味着你可以这样做:

代码语言:javascript
运行
复制
>>> myDict = { 'DOGS':'some string', 'Cat': 'some string' }
>>> [key for key in myDict.keys() if 'dogs' in key.lower()]
['DOGS']

--请注意,这必须返回一个列表,因为测试越松散,匹配多个键的可能性就越大。这种处理列表的单行形式称为。本质上,它通过处理输入列表的所有元素来创建一个新列表-在本例中是字典键列表。

要测试您的“键名称中dog的所有字母”,请使用以下内容:

代码语言:javascript
运行
复制
>>> [key for key in myDict.keys() if all(char in key.lower() for char in 'dog')]
['DOGS']
>>> [key for key in myDict.keys() if all(char in key.lower() for char in 'act')]
['Cat']

对于列表理解,访问字典时的默认设置是遍历其keys,因此您实际上可以省略它:

代码语言:javascript
运行
复制
>>> myDict = { 'wild dogs':'some string', 'Cats' :'some string' }
>>> [key for key in myDict if all(char in key.lower() for char in 'dog')]
['wild dogs']

要立即检索关联的键值,只需添加其字典名称:

代码语言:javascript
运行
复制
>>> [myDict[key] for key in myDict.keys() if all(char in key.lower() for char in 'dog')]
['some string']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53733400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档