PY自学笔记——字典

本文介绍了如何在Python中创建、访问、修改和删除字典,包括动态赋值、通过dict()方法、zip()函数和fromkeys()方法创建字典,以及字典的遍历、排序和常用操作如get()、pop()和update()。
摘要由CSDN通过智能技术生成

创建字典

dictionary={key1:value1, key2:value2, …, keyn:valuen}

#空字典
dictionary={}  

字典中的键必须独一无二

键必须是不可变的(所以字典的键不能是字典或者列表)

如果创建字典时,一个键被赋值了两次,以最后一个为准

通过动态值创建字典
 

#先创建空字典
my_dict = {} 

name = ‘abc' 
age = 21
location = 'Liaoning' 

my_dict['Name'] = name 
my_dict['Age'] = age
my_dict['Location'] = location 

用在一些事先不知道返回结果的场景中

比如:服务器返回数据

当获得这些数据之后,逐一向字典内添加

通过系统dict()的方法

my_dict = dict(name='abc', age=21, location='Laoning' ) 

键必须是字符串

dict()方法是一个动态参数的方法,不会限制传入的类型和个数

会以变量名去充当键值对应的键

以变量的值充当键值对应的值

通过dict + 键值元素表

my_dict = dict([('name', 'abc'), ('age', 21), ('location', 'Liaoning')])

利用一个List,列表内的元素都是包含两个元素的元组

元组内第一个为键,第二个为键值

zip方法

keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3, 4]

#将已有的两组数据打包创建新的字典
dictionary = dict(zip(keys, values))     

fromkeys方法

Dict = dict.fromkeys(['name', 'age', 'sex'])
    
#以给定内容为键,键值都为空                       
Dict

{'age': None, 'name': None, 'sex': None}

字典的访问

通过key值索引,获得对应value值

value=dict[key]

添加 修改

dict['x']='value'

若x不在字典中,则添加

若x在字典中,则修改

删除

#删除键为x的一项
del dict['x']

#情空字典
dict.clear()

del dict

update()方法

可以一次性的添加或者修改当前字典

如果存在不同的键,则添加

存在相同的键,则更新

aDict = {'age': 37, 'score': [98, 97], 'name': 'Dong', 'sex': 'male'}
aDict.update({'a':97, 'age':39})

{'score': [98, 97], 'sex': 'male', 'a': 97, 'age': 39, 'name': 'Dong'}

字典的操作方法

dic = {'a':0,'b':1,'c':2}

dic.items()
#dict_items([('a', 0), ('b', 1), ('c', 2)])

dic.keys()
#dict_keys(['a','b','c'])

dic.values()
#dict_values([0,1,2])

dic.get('a')
#0

dic.pop('a')
#删除以a,并返回a对应的值

items keys values 都返回视图

视图链接原始的字典

所以如果字典发生变化,视图也会对应变化

get()方法

#如果字典中存在该键则返回对应键值
aDict.get('age')                    
#21


#指定的键不存在时返回指定的默认值
aDict.get('address', 'Not Exists.') 
'Not Exists.'

dic.popitem()

删除字典中的某个键值对,并返回该键值对

一般是尾部,但是具体预先不知道

当不在乎字典元素的顺序时,此函数适用

字典的遍历

遍历key值

dictA:{'a': '1', 'b': '2', 'c': '3'} 

for k in dictA:
    print(k+':'+ dictA[k]) 

#或者 
for k in dictA.keys()

#a:1
#b:2
#c:3

遍历value值

dictA:{'a': '1', 'b': '2', 'c': '3'} 

for v in dictA.values():
 	print(v) 

1 
2
3

for v in dictA:
 	print(v) 

a
b
c

遍历字典项

dictA:{'a': '1', 'b': '2', 'c': '3'} 

for kv in dictA.items():
	print(kv) 


#输出元组
('a', '1') 
('b', '2')
('c', '3') 

遍历字典键值

dictA:{'a': '1', 'b': '2', 'c': '3'} 

for k,v in dictA.items(): 
	print(k+':'+v) 

#或者
for (k,v) in dictA.items()
    print(k+':'+v) 

a:1 
b:2 
c:3 

字典的排序

sorted()

sorted(iterable,key,reverse)

#按照key排序
sorted(dict.items(),key=lambda d:d[0])
#按照value排序
sorted(dict.items(),key=lambda d:d[1])

lambda,匿名函数

用来表述内部只包含一行表达式的函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值