Python基础04 字典基本操作

一、前言

本文主要记录了Python学习过程中,基本数据类型字典dict的操作

二、字典dict

主要包括增、删、改、查的一些方法
字典是python中唯一的映射类型数据,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表之外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

直接添加

dic = {
    'name': 'allen',
    'age': 19,
    'hobby': 'basketball'
}
dic['address'] = '北京'  # 有key则修改,无key则增加
print(dic)

{'name': 'allen', 'age': 19, 'hobby': 'basketball', 'address': '北京'}

使用set.default()添加元素

dic = {
    'name': 'allen',
    'age': 19,
    'hobby': 'basketball'
}
dic.setdefault('name','alex') #有key不修改,无则增加
{'name': 'allen', 'age': 19, 'hobby': 'basketball'}

dic.setdefault('tel','18888813694') #有key不修改,无则增加
{'name': 'allen', 'age': 19, 'hobby': 'basketball', 'tel': '18888813694'}
dic = {
    'name': 'allen',
    'age': 19,
    'hobby': 'basketball'
}

res = dic.pop('name')
print(res)

输出结果
{'age': 19, 'hobby': 'basketball'}


res = dic.pop('address','没有此key') # 没有此key时不报错
print(res)
{'name': 'allen','age': 19, 'hobby': 'basketball'}

dic.popitem() # 随机删除,有返回值
dic.clear() # 清除字典中的元素
del dic # 删除字典

dic = {
    'name': 'alex',
    'age': 19,
    'hobby': 'basketball',
}
dic1 = {
    'address': 'beijing',
    'age': 25,
    'tel': '17888813693',

}
dic['age]=20
print(dic)
结果:{
    'name': 'alex',
    'age': 19,
    'hobby': 'basketball',
}

dic.upate(dic1) # dic1中有和dic相同的key,修改dic中元素value,不相同key的item添加到dic中
{'name': 'alex', 'age': 25, 'hobby': 'basketball', 'address': 'beijing', 'tel': '17888813693'}

dic = {
    'name': 'alex',
    'age': 19,
    'hobby': 'basketball',
}

print(dic['name'])  #alex
print(dic['sex'])   # 由于找不到key会报错
res = dic.get('sex', '男') # 不会报错,找不到返回默认的 

字典的遍历

dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'alex'}

for i in dic: 
    print(i)# 打印的是key
    
k1
k2
k3
name
for i in dic.keys(): 
    print(i)# 打印的是key
    
k1
k2
k3
name
for i in dic.values(): 
    print(i)# 打印的是值
v1
v2
v3
alex 
for i in dic.items(): 
    print(i)# 打印的是key-value键值对
    
('k1', 'v1')
('k2', 'v2')
('k3', 'v3')
('name', 'alex')

需要注意点:
1、遍历字典时,最好不要改变字典的大小
2、fromkeys(l,value)将可迭代对象各个元素作为key,将value作为各个key的值,返回一个字典

dic = dict.fromkeys('abc', 666)
print(dic)


{'a': 666, 'b': 666, 'c': 666}
dic = dict.fromkeys('abc', [])
# 坑
dic['a'].append(666)
print(dic)

{'a': [666], 'b': [666], 'c': [666]}
原文地址:https://www.cnblogs.com/suxianglun/p/9037215.html