如何按key1对应路径的字符串长度对嵌套字典列表排序
解决方法
直接使用Python内置的sorted()函数,通过key参数指定排序规则为每个字典key1字段对应字符串的长度即可,默认升序排序和你需要的输出效果完全一致:
jobs = [ {"key1":"path/123", "key2":list1}, {"key1":"path/12", "key2":list2}, {"key1":"path/1", "key2":list3} ] # 核心排序逻辑 sorted_jobs = sorted(jobs, key=lambda item: len(item["key1"]))
如果需要按长度从大到小降序排序,只要添加reverse=True参数即可:
sorted_jobs_desc = sorted(jobs, key=lambda item: len(item["key1"]), reverse=True)
原理解释
sorted()的key参数接收一个可调用对象,该对象会依次作用在列表的每一个元素上,返回的结果会作为排序的判断依据。这里我们用匿名函数lambda遍历列表里的每个字典,取出key1对应字符串的长度作为排序依据,就能实现需求。
内容的提问来源于stack exchange,提问作者Fisher
相关产品推荐
相关产品推荐

