python字典,如何查找值中包含指定字符串的键?

如:

dict = {1:"华为科技技术有限公司",2:"中兴通讯有限公司",3:"华为通讯技术公司",4:"中国移动",5:"华为科技研究院".......}

想找出值中包含“华为科技”的键,输出符合条件的值和对应的键。类似SQL中的:“select * from table where company like '%华为科技%',在python中咋实现??

阅读 31.1k
2 个回答

遍历就可以了,复杂度是 O(n)

pythonkeys = [x[0] for x in dict.items() if '华为科技' in x[1]]

如果想要更快,去研究全文索引吧。不过你的 like 查询本来就是 O(n) 的。

遍历,然后开头是华为科技的放一起就行了

# coding=utf-8
data = {
    1: u"华为科技技术有限公司",
    2: u"中兴通讯有限公司",
    3: u"华为通讯技术公司",
    4: u"中国移动",
    5: u"华为科技研究院"
}

match_data = {}

for (key, value) in data.items():
    if value.startswith(u'华为科技'):
        match_data[key] = value

print(match_data)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题