Python内置数据结构 - 字典dict

版权声明:欢迎转载,转载请注明作者和出处 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)

猜你喜欢

转载自blog.csdn.net/bruesz/article/details/82884162