python根据字典的值进行排序:
有一个列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}], 他们的值是不一样的, 现在要根据值进行排序:
思路:对于值排序,首先把字典中的值取出来, 把使这个值所在的字典和比它小的换位置这样就可以根据值进行排序
根据不同的键进行排序也是一样的。
具体代码实现
# 定义方法取出字典中的值
def get_val(_dict):
val = list(_dict.values())[0] # 根据值进行排序:将.values()改为.keys()就ok了
return val # 定义排序规则
def boff_sort(_list):
n = len(_list)
for i in range(n-1):
for j in range(n-1-i):
if get_val(_list[j]) > get_val(_list[j+1]): # 那到字典中的值进行排序
_list[j], _list[j+1] = _list[j+1], _list[j] if __name__ == '__main__':
li = [{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}]
boff_sort(li)
print(li)
# 运行结果为[{'c': 1}, {'e': 2}, {'d': 3}, {'b': 4}, {'a': 5}]
对相同的键进行排序的时候很简单 使用lambda函数就可以搞定。
python根据字典的值进行排序:的更多相关文章
- Python - 字典按值(value)排序
字典安值排序是一个伪命题. 字典本身是不能被排序的, 已经依照关键字(key)排序, 可是列表(list)和元组(tuple)能够排序, 所以字典须要转换列表后排序. 如 import operato ...
- python关于字典嵌套字典,列表嵌套字典根据值进行排序
python 对于字典嵌套字典, 列表嵌套字典排序 例:列表嵌套自字典:d = [{"name": '张三', 's': 68}, {'name': '李四', 's': 97}] ...
- python 给字典按值排序,同样适合于其他
sorted_items = sorted(dico.items(),key=lambda x:(-x[1],x[0]))
- python对字典及列表递归排序
对字典内所有内容进行排升序排序,包括,子数组,子字典 需要注意: 1.字典因为是在一定程序上无序的,所以这里采用了内置包,来变成有序字典 from collections import Ordered ...
- python 嵌套字典比较值,取值
#取值import types allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}}, 'Bob': {'ha ...
- python修改字典的值(update map value)
mydict.update({'newkey':'newvalue'})
- python 计算字典value值的和
my_dict = {,,} print(sum(my_dict.values()))
- python 嵌套字典取值增强版
def getdictvalue(d,code): result=[] if isinstance(d, dict) : try: value = d[code] result.append(valu ...
- [Python]获取字典所有值
方法一:Key Value 直接获取 databases = {1: 'Student', 2: 'School'} for k,v in databases.items(): print(k,v) ...
随机推荐
- c++中的不是数的数nan
matlab中经常碰到nan,inf等特殊“数”,而在C++中也有相应的表示:例如std::numeric_limits <float>::quiet_NaN ();可以得到浮点型的nan ...
- C程序设计语言练习 第二章
2.3 常量 strlen函数:返回s的长度 int strlenn(char s[]) { int i=0; while(s[i] != '\0') ++i; return i; } 2.7 类型转 ...
- WEB前后端分离开发中的验证与安全问题
登录验证以及安全问题: 1.请求接口全部用post方式,在后端判断请求方式是否为post 2.登录密码等敏感信息要加密后传输,如用RSA(支付宝里可下载公私钥生成工具),客户端公钥加密,传到服务器后再 ...
- Ubuntu19.04 Help
Ubuntu Dock 为应用程序启用最小化操作,立即生效. $ gsettings set org.gnome.shell.extensions.dash-to-dock click-action ...
- python模块知识四 包和logging日志
11.包 包:文件夹下具有__init__.py文件就是一个包,包用来管理多个模块 包的结构如下: bake ├── __init__.py ├── api ├── __init__.py ├── p ...
- java.lang.SecurityManager、java.security包
学习java大概3年多了,一直没有好好研究过java安全相关的问题,总是会看到 SecurityManger sm = System.getSecurityManager(); if(sm!=null ...
- (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...
- Java并发多线程面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...
- input中blur失去焦点事件与点击事件冲突时如何解决
方法一 使用setTimeout $(function(){ $(".cy-name-input input").on({ focus:function() { $(". ...
- python day4 元组/字典/集合类知识点补充
目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 ...