目录
- 字典
- 字典的定义
- 字典对象增加元素
- 字典对象元素删除
- 字典对象的修改
- 字典对象元素的查找
- 字典的深浅拷贝
字典
- 字典是一种可变数据类型
- 点典的元素存储方式是键值对的形式,键值对之间用逗号隔开
- 键值对的形式形如:key:value
- 最外层用{}括起来
- d = {key1 : value1, key2 : value2 }
- 由于字典是键值对的形式,所以字典是无序的,自然不能切片和索引,而是通过键来取值
键:一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
值:可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
字典的定义
- dict()来创建
a = dict([('a',1),('b',2),('c',3)])
a
type(a)
{'a':1,'b':2,'c':3}
dict
- 直接赋值{}
b = {'a':1,'b':2,'c':3}
b
type(b)
{'a':1,'b':2,'c':3}
dict
字典对象增加元素
- dict[键名] = 值
c = {'a':1,'b':2,'c':3}
c['e'] = 4
e
{'a':1,'b':2,'c':3,'e':4}
- dict.setdefault(’新键名‘,值)
d = {'a':1,'b':2,'c':3}
d.setdefault('e',4)
d
{'a':1,'b':2,'c':3,'e':4}
- dict1.update(dict2)
类似列表extend()
字典对象元素删除
常用的5种方法
del 字典名[‘键名‘] | 删除指定键值 |
---|---|
字典名.pop(‘键名‘) | 删除键值+弹出值 |
字典名.popitem() | 随机删除一对(一般最后一对)+弹出 |
字典名.clear() | 删除词典内所有元素(和列表对应操作相同) |
del 字典名 | 删除整个词典(和列表对应操作相同) |
Examples:
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.clear() scores {}
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} del scores['Mike'] scores {'Tom': 89, 'Mary': 95, 'Jack': 95}
字典对象的修改
字典名[键] = 新值
字典对象元素的查找
字典名[‘键名‘] | 返回改键所对应的值 |
---|---|
字典名.get(‘键名‘) | 返回改键所对应的值 |
字典名.keys() | 返回包含所有键的列表 |
字典名.values() | 返回包含所有值的列表 |
字典名.items() | 返回所有包含键值对的列表 |
Examples:
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.get('Mary') 95
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.items() dict_items([("Mike":88),("Tom":89),("Mary":95),("Jack":95)])
字典的深浅拷贝
- 浅拷贝
两个字典的内存地址不同,但内部元素指向同一内容空间
Examples:
a = {'a':1, 'b':(1, 2), 'c':[1, 2, 3], 'd':(1, 2, {1:1}), 'e':{1, 2, 3}} b = copy(a) id(a) id(b) 82254800 82254224 # 不同电脑运行结果不同,但a,b两个字典的id不同 [id(x) for x in a] [id(x) for x in b] [30713928, 30712248, 30378392, 30622024, 30621968] [30713928, 30712248, 30378392, 30622024, 30621968] # 内部的item的id 是一样的 说明内部的元素指向同一个值
原文地址:https://www.cnblogs.com/LAUGH-TALE/p/11646034.html
时间: 2024-10-10 11:12:14