版权声明:欢迎转载,转载请注明作者和出处 https://blog.csdn.net/bruesz/article/details/82884162
字典dict
- 字典是一种组合数据,没有顺序,数据以键值对形式出现
- 字典是无序序列,所以没有分片和索引
- 字典中的每个数据都是键值对(kv对, key-value对)
- key: 必须是可哈希的值,比如int,string,float,tuple, 但是list,set,dict不行
- value: 任何值
创建字典
# 创建空字典
d = { }
print(type(d))
# 创建空字典2
d = dict()
print(type(d))
d = {1,2,3}
print(type(d))
d = {"one":1, "two":2, "three":3}
print(d)
# 用dict创建有内容字典
d = dict({"one":1, "two":2, "three":3})
print("*" * 20)
d = dict(one=1,two=2, three=3)
print(d)
输出结果:
<class ‘dict’>
<class ‘dict’>
<class ‘set’>
{‘one’: 1, ‘two’: 2, ‘three’: 3}
{‘one’: 1, ‘two’: 2, ‘three’: 3}
字典生成式
# 字典生成式
d = {"one":1, "two":2, "three":3}
dd = {k:v for k,v in d.items()}
print(dd)
#加限制条件
dd = {k:v for k,v in d.items() if v % 2 == 0}
print(dd)
字典的常见增删改操作
- 访问数据
- 之间数值键对
- 修改值的内容
- 删除某个键值
- 成员检测: in, not in, 注意检测的是键值key的内容
- 遍历
# 访问数据
d = {"one":1, "two":2, "three":3}
# 注意访问格式,中括号内是键值
print(d["one"])
#增加一个键值对
d["four"] = 4
# 修改值的内容
d["one"] = "wang"
print(d)
# 删除某个键值使用del
del d["two"]
print(d)
字典的内置函数和结构
- get:根据指定键值返回相应的值,可以设置返回的默认值,不存在不报错
- fromkeys: 使用指定的序列作为键值,一个默认值作为所有键的值。注意fromkeys的调用主体
- 字典内置数据结构在遍历中的作用
- keys()
- values()
- items() : 包含key和value
get使用:
# get:根据指定键值返回相应的值,可以设置返回的默认值,不存在不报错
d = {"one":1, "two":2, "three":3}
print(d.get("one"))
print(d.get("aaa"))
print(d.get("aaa","Not Existed"))
输出结果:
1
None
Not Existed
fromkeys使用
# fromkeys: 使用指定的序列作为键值,一个默认值作为所有键的值
# 注意fromkeys的调用主体
l = ["a","b","c"]
d = dict.fromkeys(l,"111")
print(d)
数据的遍历
# 遍历在python2和python3中区别比较大,代码不通用
d = {"one":1, "two":2, "three":3}
#使用for循环
for k in d:
print(k,d[k])
# 上面代码可以写成如下:
for k in d.keys():
print(k,d[k])
# 可以直接用value来访问
for v in d.values():
print(v)
# 注意键值对的特殊用法
for k,v in d.items():
print(k,"---",v)