【问题标题】:Python: Finding a (string) key in a dictionary that contains a substringPython:在包含子字符串的字典中查找(字符串)键
【发布时间】:2010-07-15 05:04:34
【问题描述】:

在我的脚本中,我构建了一个映射到艺术家(值)的键(专辑)字典,以便我可以快速查找哪些艺术家制作了哪些专辑。但是,我希望用户能够找到所有包含子字符串的专辑。例如,搜索“Light”应该返回

[Light Chasers] = Cloud Cult[Night Light] = Au Revoir Simone

最好的方法是什么?我什至应该使用字典吗?

【问题讨论】:

    标签: python data-structures dictionary


    【解决方案1】:
    [(k, v) for (k, v) in D.iteritems() if 'Light' in k]
    

    【讨论】:

    • 啊,我在想这样的事情,我不会这么优雅地表达出来。我偷偷地希望可能有一些更有效的解决方案:)
    • 如果性能很关键,内存很便宜,并且记录集合很少更改,您可以构建另一个“索引”字典,其中单个单词作为键和包含该单词的专辑列表作为价值观。除非您进行大量查找并且拥有真正庞大的记录集合,否则可能不值得。
    【解决方案2】:

    如果您只需要包含文本的第一张专辑,这里有一个快速的方法:

    try:
        return ('[%s] = %s' % (k, D.get(k)) for k in D if search_string.lower().strip() in k.lower()).next()
    except StopIteration:
        return 'No matches found'
    

    【讨论】:

      猜你喜欢
      • 2015-11-12
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多