Slicing a dictionary by keys that start with a certain string

后端 未结 3 1753
情深已故
情深已故 2020-12-14 06:25

This is pretty simple but I\'d love a pretty, pythonic way of doing it. Basically, given a dictionary, return the subdictionary that contains only those keys that start with

相关标签:
3条回答
  • 2020-12-14 06:32

    In functional style:

    dict(filter(lambda item: item[0].startswith(string),sourcedict.iteritems()))

    0 讨论(0)
  • 2020-12-14 06:47

    How about this:

    in python 2.x :

    def slicedict(d, s):
        return {k:v for k,v in d.iteritems() if k.startswith(s)}
    

    In python 3.x :

    def slicedict(d, s):
        return {k:v for k,v in d.items() if k.startswith(s)}
    
    0 讨论(0)
  • 2020-12-14 06:50

    In Python 3 use items() instead:

    def slicedict(d, s):
        return {k:v for k,v in d.items() if k.startswith(s)}
    
    0 讨论(0)
提交回复
热议问题