python中的{字典}

2022-10-17,

目录

字典——dict { }

字典是无序,可变的数据类型。

字典:用于存储数据,存储大量数据,字典要比列表快;将数据和数据之间进行关联。

  1. 定义:
    dic = {键:值,键:值} #每个 键值对 以逗号分隔成一个元素

字典的值: 可以是任意的数据类型。

字典的键:必须是可哈希的——不可改变的数据类型;要求键唯一,如果有重复的,则后面的值会把前面的值覆盖掉。

(注:可哈希的 -- 不可变的数据类型(数字、字符串、布尔值) -- 避免哈希冲突使用了 “开放寻址法” )

(不可哈希的 -- 可变的数据类型 (列表、字典) )

  1. 增:
    dic = {"a":10,"b":20,"c":30}

    dic["键"] = 值 # 暴力添加
    dic["d"] = 40

    dic.setdefault(键,值) # 通过键去字典中查询,如果键不存在执行添加,如果键存在则不会添加
    dic.setdefault("c",40) # "c" 存在,不添加
    dic.setdefault("f",40) # "f"不存在,添加到字典

  2. 删:
    del dic["a"] # 通过字典的键,删除键值对
    dic.pop("b") # 通过字典的键,删除键值对,有返回值,返回的是被删除的值
    dic.clear() # 清空字典

  3. 改:
    dic["b"] = 200 #字典中没有此键值对的时候就是添加,当键在字典中存在的时候就是修改 # "有则改,无则加"
    dic.update(dic1) # 更新,里面必须放字典。update括号中的字典(dic1)级别高于前面的字典(dic)
    # 运行:先将具有相同键的内容覆盖,再在字典末尾添加dic没有的键值对

  4. 查:
    for i in dic:
    print(i) # for 循环获取的是键值对的键

    dic.get(键) # 通过键获取值,如果键不存在字典中会返回 none
    dic[键] # 通过键获取值,如果键不存在字典中会报错!

  5. 其他操作:
    dic = {"a":1,"b":2,"c":3}

    # 1.
    for i in dic:
    print(i,dic.get(i)) # 循环输出所有的键和值 a 1 b 2 c 3

    # 2. keys() 所有的键
    print(dic.keys()) # 高仿列表,获取的是字典中所有的键 -- dict_keys(['a', 'b', 'c']) 支持for循环 不支持索引

    for i in dic.keys():
    print(i) # 循环输出所有的键 a b c

print(dic.keys()[0]) # 报错 'dict_keys' object does not support indexing(不支持索引)

# 3. values() 所有的值
print(dic.values()) # 高仿列表,获取的是字典中所有的值 ——dict_values([1, 2, 3])
print(list(dic.values())) # 获取的是字典中所有的值,转换成 真的列表

# 4. items() 所有的键和值
print(dic.items()) # 高仿列表,获取的是字典中所有的键和值,存放在元组中 ——dict_items([('a', 1), ('b', 2), ('c', 3)])

for i in dic.items():
print(i[0],i[1]) #将键和值从元组中循环打印出 a 1 b 2 c 3

# 5. 将字典中的值放到列表中
lst = []
for i in dic:
lst.append(dic[i])
print(lst)

  1. 解构:
    a = 10
    b = 20
    a,b = b,a
    print(a,b) # 实现a,b数字的交换,列表、元组都可以

    a,_,b = (3,4,5)
    print(a,b) # 3 5 等号后边的值和前面的变量名要一一对应(假如只要a,b)

    a = 10,12 # 本质就是一个元组
    print(a) # (10,12)

    a,b = "23"
    print(a,b) # 2 3

    a,b = {"1":"a","2":"b"}
    print(a,b) #输出 1 2(键)

    for i in dic.items():
    print(i) # 获取的是每个元素,结果:(键,值)

for k,v in dic.items():
print(k,v) # 获取每个元素的键和值

  1. 字典的嵌套:

查找的时候一次一次的通过键查找。

dic[键]
dic = {1001:["周杰伦","林俊杰"],
1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}}
print(dic[1002]["汪峰"]["前妻2"][1]) # 熊二

《python中的{字典}.doc》

下载本文的Word格式文档,以方便收藏与打印。