如何在Python中根据值的长度对字典按键排序生成列表?
按字典值的长度从长到短排序键列表
可以用Python内置的sorted()函数,通过指定排序依据和降序参数直接实现需求:
my_dict = {'key1': ['X','Y','Z'], 'key2': ['X','X','X','Y','Z'], 'key3': ['X']} # 按值的长度降序排序键 ls = sorted(my_dict.keys(), key=lambda k: len(my_dict[k]), reverse=True) print(ls) # 输出: ['key2', 'key1', 'key3']
代码说明
my_dict.keys():获取字典中所有键的可迭代集合key=lambda k: len(my_dict[k]):定义排序规则为键对应值的长度reverse=True:将默认的升序排序改为降序,实现从长到短排列
如果存在多个键对应的值长度相同,Python 3.7及以上版本中,排序会保留字典的原始插入顺序(此时字典是有序的)。
内容的提问来源于stack exchange,提问作者Saleh
相关产品推荐
相关产品推荐

