字典的所有相关知识

本文详细介绍了Python字典的定义、特点及操作,包括创建、访问、修改、删除键值对,以及字典的无序性、键的唯一性。此外,还展示了字典的遍历方式和相关方法,如get、update等。通过实例解析了字典在实际应用中的常见操作。
摘要由CSDN通过智能技术生成

字典

1.字典
stu1 = {'name': '小明', 'age': 18, 'gender': '男'}

字典和列表的选择

如果同时保存的多个意义相同的数据(都是年龄、都是名字、都是学生、都是狗)就是用列表;

如果同时保存的多个意义不同的数据就使用字典

2.什么是字典(dict)
1)字典是容器型数据类型,将{}作为容器的标志,里面多个键值对用逗号隔开:{键1:值1,键2:值2…}
2)可变的(增删改的操作);字典是无序(不支持下标操作)
3)元素的要求:字典的元素是键值对
键的要求:a.键必须是不可变类型的数据(一般用字符串) b.键是唯一的
值的要求:没有要求,python中任何数据都可以作为值
# 空字典
dict1 = {}
print(len(dict1))           # 0
print(type(dict1))  # <class 'dict'>
字典是无序的(不支持下标,只有有序容器才支持下标)
print({'a': 1, 'b': 2} == {'b': 1, 'a': 2})  # False
print({'a': 1, 'b': 2} == {'b': 2, 'a': 1})  # True
键是唯一的
dict3 = {'a': 10, 'b': 20, 'c': 30, 'a': 100}
print(dict3)  # 100的值会覆盖10
print(dict3['a'])
字典相关操作
1.查单个 - 获取字典的某一个键对应的值
1)字典[键] - 获取字典中指定键对应的值,如果不存在会报错
2)字典.get(键) - 获取字典中指定键对应的值,如果键不存在不会报错,并且返回None
字典.get(键,默认值) - 获取字典中指定对应的值,如果键不存在不会报错,并且返回默认值
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}

print(dog['name'])  # 旺财
print(dog.get('name'))

# print(dog['color'])  # 报错
print(dog.get('color', '白色'))
2.遍历字典

for 变量 in 字典:
循环体(变量获取到的是键)

方法2:
for 键,值 in 字典.item():
循环体

for i in dog:
    print(i)
    print(dog[i])

for key, value in dog.items():
    print(key, value)
字典的增删改
1.修改某个键对内的值

字典[键] = 新值 - 将字典中指定键对应的值修改成指定的新值

2.增 - 添加键值对

1)字典[键] = 值 - 如果键不存在,就在字典中添加键值对;如果键存在会修改键值对的值
2)字典.setdefault(键,值) - 在字典中添加指定的键值对;如果键存在会保留原来的值(不会修改)

为什么修改和增加的键方法1一样,可以这样理解 ’字典[键] = 值‘ 这个表达式一定会增加键,但是键的唯一性,如果出现相同的键,前面的键的会被后面相同的键的值覆盖,所有有了替换效果,如果没有相同的键,理所应当的成为新的键对
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
dog['color'] = '黄色'
print(dog)
dog.setdefault('weigth', 15)
print(dog)
什么时候用setdefault,下面有个例子
goods_list = [
    {'name': '泡面', 'price': 4, 'discount': 0.9},
    {'name': '火腿肠', 'price': 1.5},
    {'name': '矿泉水', 'price': 2, 'discount': 0.8},
    {'name': '面包', 'price': 5.5},
    {'name': '酸奶', 'price': 7.5},
]
# 给没有折扣的商品折扣值为1
for i in goods_list:
    i.setdefault('discount',1)
print(goods_list)
3.删 - 删除键值对
del 字典[键] - 删除字典中指定键对应的键值对
字典.pop(键) - 取出字典中指定键对应的值

这个方法中pop方法也是属于有返回值

print(dog.pop('color'))
print(dog)
字典相关操作和方法
字典不支持+、*、>、<、>=、<=、
1. in 和 not in - 判断字典中是否存在或者不存在指定的键
键 in 字典 ; 键 not in 字典
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1)  # False
print('b' in dict1)  # True
2.相关函数:len、dict (虽然也能用max,min,函数,但是没有意义)
1)len(字典) - 获取字典中键值对的数量
2)dict(数据) - 将指定的数据转换成字典
能转换成字典数据的要求:

a.数据本身是一个序列
b.序列中的元素必须是有且只有两个元素的小序列
c.小序列的第一个元素必须是不可变类型的数据

result = dict(['ab', 'cd', 'ef'])
print(dict(['ab', [10, 20]]))
注意:字典转换成列表的时候,将字典所有的键作为列表的元素
print(list(dict1))     #['a', 'b', 'c']
3.字典相关方法
1)字典.clear() -清空字典
2) 字典.copy() -复制字典产生一个一模一样的新字典(浅拷贝)
3.字典.keys() - 获取字典所有的键,返回一个序列
字典.values() - 获取字典所有的值,返回一个序列
字典.items() - 将字典转换成一个序列。并且将每一个键值对转换成一个元组
print(dict1.keys())
for i in dict1.keys():
    print(i)
print(dict1.values())
print(dict1.items())
for i in dict1.items():
    print(i)
都是储存在列表中
4)字典1.update(字典2) - 将字典2中所有的键值对添加到字典1
d1 = {'a': 100, 'b': 200}
dict1.update(d1)
print(dict1)
因为键出现了2次,保留的是后面键的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值