【问题标题】:keeping dictionary values greater than length of five保持字典值大于五的长度
【发布时间】:2026-01-21 18:10:01
【问题描述】:
d = {'key1':['hello', 'ab', 'a', 'morning', 'sunset', 'metaphysics'],
     'key2':['hi', 'morning', 'sunset', 'metaphysics'], 
     'key3':['hey', 'sunset', 'metaphysics']}

我有一个字典 d,我只想保留那些长度为 5 或更大的元素。所以我希望我的输出是

d = {'key1':['hello', 'morning', 'sunset', 'metaphysics'],
     'key2':['morning', 'sunset', 'metaphysics'], 
     'key3':['sunset', 'metaphysics']}

我在这里查看How to find length of dictionary values,但这确实有很大帮助。

谁能帮忙?

【问题讨论】:

    标签: python-3.x string list loops dictionary


    【解决方案1】:
    d = {'key1':['hello', 'ab', 'a', 'morning', 'sunset', 'metaphysics'],
         'key2':['hi', 'morning', 'sunset', 'metaphysics'],
         'key3':['hey', 'sunset', 'metaphysics']}
    
    for key, val in d.items():
        d[key] = [v for v in val if len(v) > 4]
    
    print (d)
    

    {'key1': ['hello', 'morning', 'sunset', '形而上学'], 'key2': ['morning', '日落', '形而上学'], 'key3': ['日落', '形而上学']}

    【讨论】:

      【解决方案2】:

      仅使用理解。

          d = {'key1':['hello', 'ab', 'a', 'morning', 'sunset', 'metaphysics'],
               'key2':['hi', 'morning', 'sunset', 'metaphysics'],
               'key3':['hey', 'sunset', 'metaphysics']}
      
          d  = {key: [v for v in value if len(v) >4] for key, value in d.items()}
          print(d)
      

      {'key1': ['hello', 'morning', 'sunset', '形而上学'], 'key2': ['morning', '日落', '形而上学'], 'key3': ['日落', '形而上学']}

      【讨论】:

      • 这与其他答案有何不同?
      • 输出是一样的,只是它使用了理解。