Python自学| 简单学--字典

字典(dict)

字典是一种映射类型,它是一个无序的‘ 键:值’对集合,每一个元素都是pair,包含key,value两部分;

key是Integer或string类型,value是任意类型;
关键字(key)必须使用不可变类型,在同一字典中,关键字必须不相同。

①列表转换字典

name = ["Ben","Jnon","Anny","Tom","Jan","Wong"]
tel = [1001,1002,1003,1004,1005,1006]
Tellbook = {}				#创建空字典
for i in range(len(name)):	#遍历name
        d1 = "{}".format(name[i])
        d2 = "{}".format(tel[i])
        Tellbook[d1] = d2
print(Tellbook)
{'Jan': '1005', 'Jnon': '1002', 'Anny': '1003', 'Tom': '1004', 'Ben': '1001', 'Wong': '1006'}

1)字典的增,删,改,查。

Tellbook ['wang']=3     #给键赋值,若键不存在,则直接创建此键
del Tellbook['wong']	#删除一个键值对
Tellbook['Ben'] 		#通过key查询对应的值
list(Tellbook.key())	#返回所有key组成的list
list(Tellbook.value())	#返回所有的value组成的list
sorted(Tellbook.key())	#按key对字典排序
'Ben' in Tellbook		#成员测试
'Marry' not in Tellbook	#成员测试

②使用构造函数 dict() 直接从键值对构建字典 (直接了当构造)

>>> dict ([('sape',1001),('guido',1002),('jack',1003)])
{'jack': 1003, 'sape': 1001, 'guido': 1002}
>>> dict(sape=1001,guido=1002,jack=1003)
{'jack': 1003, 'sape': 1001, 'guido': 1002}
>>> 

1)字典有。items()方法,将字典里的键值对转化为元组,作为元组里的一个元素;

>>> d={'jack': 1003, 'sape': 1001, 'guido': 1002}
>>> t=d.items()
>>> t
dict_items([('jack', 1003), ('sape', 1001), ('guido', 1002)])
>>> list(t)
[('jack', 1003), ('sape', 1001), ('guido', 1002)]
>>>  

相反元组也可以转化为字典;

>>> t=[('jack', 1003), ('sape', 1001), ('guido', 1002)]
>>> d=dict(t)
>>> d
{'jack': 1003, 'sape': 1001, 'guido': 1002}
>>>  

2)使用update()函数合并两个字典

>>> d={'jack': 1003, 'sape': 1001, 'guido': 1002}
>>> t={'lai':1004}
>>> d.update(t)
>>> d
{'jack': 1003, 'lai': 1004, 'sape': 1001, 'guido': 1002}
>>>  

3)使用tuple作为键可以创建字典

>>> sep = ('name','age','sex')
>>> dict=dict.fromkeys(sep)		#给字典key的赋值来自sep
>>> dict						#只有key,显示为None
{'name': None, 'age': None, 'sex': None}
>>> dict =dict.fromkeys(sep,10)	#赋值为10
>>> dict
{'name': 10, 'age': 10, 'sex': 10}
>>>   

4)字典有“ . ”以下方法
①D.get(key,0) #dict[key],此处参数为0
②D.keys() #返回字典键列表
③D.value() #返回字典值的列表
④D.items() #将字典转化为元组作为元素的一个列表
⑤D.update(dict2) #合并字典
⑥D.pop(key) #删除键值对,键名这个参数必须有
⑦D.popitem() #没有参数则从字典中随机删除一个键值对,已空抛出异常
⑧D.clear() #清空字典,不同于del dict是删除字典
⑨D.copy() #拷贝字典
⑩Dict1 = dict.copy() #克隆,浅拷贝,深拷贝

5)字典中内置函数get方法的调用
假设用户在终端输入字符:“1”,“2”或“3”,则返回对应内容,如果输入其他,返回error;

>>> info = {'1':'first','2':'second','3':'three'}
>>> print(info.get(input('input type you number:'),'error'))
input type you number:3
three
>>>  
回顾:

D.get(key,None)的用法:若字典有key键,返回键值,若没有,返回None。或者改成D.get(key,“哈哈”),若没key,返回 --哈哈;

6)字典的排序
1、按value排序,使用sorted()函数;

>>> dict = {'班级':1,'年龄':21,'分数':95}
>>> sorted(dict.items(),key = lambda e:e[1],reverse = True)  #dict.items()为列表
[('分数', 95), ('年龄', 21), ('班级', 1)]
>>> 

其中e表示dict。items()中的一个元素,e[1]表示按值排序,reverse = True 可以忽略,默认升序;

2、按key排序
对字典排序也可以用sorted()函数,只要把sorted(dict.items(),key = lambda e:e[0],reverse = True)

7)set函数
集合(set)是一个无序,不重复元素的集,set基本功能是去重 ,可以使用大括号或set()函数创建set集合;
注意:创建空集合只能用set(),不能用{},因为{}只能创建空字典;

student = {'Tom','jan','marry','Tom','Jack','Rose'}
>>> print(student)
{'Rose', 'marry', 'Tom', 'Jack', 'jan'}
>>> 'Rose' in student
True
>>> student.add('JANNER')
>>> student
{'Rose', 'marry', 'JANNER', 'Jack', 'jan', 'Tom'}
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值