python 05 字典

字典——dict { }

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

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

1. 定义:

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

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

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

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

​ (不可哈希的 – 可变的数据类型 (列表) )

2. 增:

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

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

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

3. 删:

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

4. 改:

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

5. 查:

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

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

6. 其他操作:

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)

7. 解构:

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 i,j in dic.items():
    print(i,j)    # 获取每个元素的键和值

8. 字典的嵌套:

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

​ dic[键]

dic = {1001:["周杰伦","林俊杰"],
       1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}}
print(dic[1002]["汪峰"]["前妻2"][1])   # 熊二
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值