使用dict,zip方法将两个list合并为dict
keys = ["b", "a", "c", "e", "d"]
values = ["", "", "", "", ""]
dict(zip(keys, values)) #该dict是无序的 d=dict(zip(keys, values))
[(k,d[k]) for k in sorted(d.keys())] #按keys排序,升序
[(k,d[k]) for k in sorted(d.keys(),reverse=True)] #按keys排序,降序

按value排序:

dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict

dict()函数将包含有多个元组的list可以转换为字典:

y=[('name','zhangsan'),('age',20)]
print dict(y) #返回{'age': 20, 'name': 'zhangsan'}

将两个字典f1、f2合并,重复项的value相加,非重复项保留:

注:只能对数字格式的value值进行相加

print f1 #返回{'10.160.31.31': 44, '10.160.100.3': 46, '10.160.100.2': 47, '::1': 92, '10.160.100.241': 8017, '127.0.0.1': 36}
print f2 #返回{'106.185.41.148': 1, '10.160.31.31': 36, '10.160.100.3': 44, '10.160.100.2': 44, '::1': 39, '111.201.171.47': 1, '10.160.100.241': 8005, '127.0.0.1': 47} from collections import Counter
print dict(Counter(f1) + Counter(f2)) #返回{'106.185.41.148': 1, '10.160.31.31': 80, '10.160.100.3': 90, '10.160.100.2': 91, '::1': 131, '111.201.171.47': 1, '10.160.100.241': 16022, '127.0.0.1': 83}

字典合并,两个字典中的key不能重复,否则会被后一个字典覆盖掉:

d1={'k1':['abc'],'k2':'m'}
d2={'k11':['a'],'k22':'n'}
d3 = dict(d1,**d2)
print d3 #返回:{'k22': 'n', 'k2': 'm', 'k1': ['abc'], 'k11': ['a']}
#等同于如下:
# d3 = d1.copy()
# d3.update(d2)
#print d3

字典合并,value值为list的可以进行重复合并:

d1={'k1':['abc'],'k2':['m']}
d2={'k1':['a'],'k22':['n']} d3= {}
for k,v in (d1.items() + d2.items()):
if d3.get(k) is None:
d3[k] = v
else:
d3[k].extend(v)
print d3
#返回:{'k22': ['n'], 'k2': ['m'], 'k1': ['abc', 'a']}

将字符串的dict转换为json格式:

udata = ‘{‘a’:'aa','b':'bbb'}’ #udata是string

from ast import literal_eval

udataj = literal_eval(udata) #udataj是dict

字典构造、合并(dict)、排序的更多相关文章

  1. python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参

    python字典dictionary几个不常用函数例子 一.字典声明 如,d={}; d= {'x':1,'b':2} d1 = dict(x=1,y=2,z=3)     d2 = dict(a=3 ...

  2. python内置数据类型-字典和列表的排序 python BIT sort——dict and list

    python中字典按键或键值排序(我转!)   一.字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序. Py ...

  3. Python中多个列表与字典的合并方法

    Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['] b = ['] a += b print(a) >>>['] 2) a.extend(b) a=[' ...

  4. python3两个字典的合并

    两个字典的合并其实很简单,直接用dict的update即可,代码如下: # /usr/bin/python3 # -*- encoding: utf-8 -*- ", "" ...

  5. Python字典的合并与拆分

    1.字典的合并 dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} dictMerged2=dict(dict1, ...

  6. python 学习笔记(三)根据字典中值的大小对字典中的项排序

    字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...

  7. 1、如何在列表,字典,集合种根据条件筛选数据?2、如何为元组中的每个元素命名,提高程序的可读性3、如何统计出序列中元素出现的频度4、如何根据字典中value的大小,对字典的key进行排序

    一.数据筛选: 处理方式: 1.filter函数在py3,返回的是个生成式. from random import randint data = [randint(-100,100) for i in ...

  8. python字典按照value进行排序

    先说几个解决的方法,具体的有时间再细说 d = {'a':1,'b':4,'c':2} 字典是这个,然后要对字典按照value进行排序 方法一: sorted(d.items(),key = lamb ...

  9. python字典按照value进行排序.bak

    先说几个解决的方法,具体的有时间再细说 d = {'a':1,'b':4,'c':2} 字典是这个,然后要对字典按照value进行排序 方法一: sorted(d.items(),key = lamb ...

  10. Python基础8:列表推导式(list)字典推导式(dict) 集合推导式(set)

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

随机推荐

  1. Android四种跨进程通信

    由于android系统中应用程序之间不能共享内存.因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些.在android SDK中提供了4种用于跨进程通讯的方式.这4种方式正好对应于andro ...

  2. Java多线程(二)同步与等待唤醒

     1:数据安全问题 1.1:什么情况下会出现数据安全问题? 多个线程对同一个资源进行操作,并且操作资源的语句有多条.那么这个时候这些语句因为cpu的随机性,有可能被多个线程分开执行.导致数据安全问题. ...

  3. python-树形结构和遍历

    #!/usr/bin/python class TreeNode(object): def __init__(self,data = 0,left = None,right = None): self ...

  4. JAVA-3NIO之Buffer和Buffer之Scatter/Gather

    注意:转载自并发编程网,java nio系列教程 1.Buffer Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是 ...

  5. Golang Socket编程

    Socket编程 在很多底层网络应用开发者的眼里一切编程都是Socket,话虽然有点夸张,但却也几乎如此了,现在的网络编程几乎都是用Socket来编程.你想过这些情景么?我们每天打开浏览器浏览网页时, ...

  6. Idea软件Vim插件问题

    人家说用webstorm是纯前端,用Idea是java+前端,好,那就用Idea,装上试试,全选所有插件安装,奇迹出现了,选中一行代码,backspace,删不了,我的天,好吧,复制粘贴的快捷键也不行 ...

  7. Mysql中的分页处理

    先来说一下Mysql中limit的语法: --语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset --举例: selec ...

  8. [转] 常用的sql server规范

      常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigi ...

  9. 3.java设计模式-建造者模式

    Java设计模式-建造者模式 在<JAVA与模式>一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal repr ...

  10. springboot之内嵌tomcat修改端口号

    第一种: 在配置文件中直接修改 server.port=8089 第二种: 直接定义 TomcatEmbeddedServletContainerFactory,注册bean: @Configurat ...