2021-05-12

字典的基础知识

Python中的字典由键值对(key-value)组成,key必须是不可变的,而且不允许有相同的Key值。


  1. 字典是无序的,Value的保存位置是由Key进行哈希值的计算得到的
  2. 字典与列表一样是可变的,而且支持动态增加
  3. 创建时如果同一个键被两次赋值,后一个值会被记住,前一个会被覆盖


基本操作

创建字典

""" 字典的创建 """
    '''第一种方法'''
    dict1 = dict(name='jake',age=18)
    print(dict1,type(dict1))
    print("-----------分界线-----------")
    '''第二种方法'''
    dict2 = {"张三":18,"李四":20}
    print(dict2,type(dict2))

增删改查键

print("-----------增加与修改操作------------")
    dict3 = {"张三": 18, "李四": 20,"王麻子":21}
    dict3["王五"] = 19  # 增加键值对
    dict3["李四"] = 21  # 修改Value值
    print(dict3)
    print("王麻子" in dict3)
    print("李四" not in dict3)
    del dict3["李四"]   # 删除Key为李四的键值对
    print(dict3)
    dict3.clear()  # 清空字典
    print(dict3)


结果:
-----------增加与修改操作------------
{'张三': 18, '李四': 21, '王麻子': 21, '王五': 19}
True
False
{'张三': 18, '王麻子': 21, '王五': 19}
{}

字典中元素的获取

    print("-----------------获取字典中的元素----------------")
    dict2 = {"张三": 18, "李四": 20}
    print(dict2.get("张三"))  # 方法一
    print(dict2["李四"])      # 方法二
    # print(dict2["赵六"])    # 如果没有赵六这个Key,则报错KeyError: '赵六'
    print(dict2.get("赵六"))  # 用get()方法没有赵六返回None,不报错

获取视图

  • key():获取字典中所有的Key值
  • value():获取字典中所有的Value值
  • items():获取字典中所有的Key Value对
    print("-----------------获取视图-------------------")
    dict5 = {"张三": 18, "李四": 20, "王五": 21}
    print(dict5.keys())
    print(list(dict5.keys()))    # 将取出的Key值转为列表
    print(dict5.values())
    print(list(dict5.values()))  # 将取出的Value值转为列表
    print(dict5.items())
    print(list(dict5.items()))   # 将取出的Key-Value对转为列表,列表中的元素被元组包裹


结果:
---------------获取视图---------------------
dict_keys(['张三', '李四', '王五'])
['张三', '李四', '王五']
dict_values([18, 20, 21])
[18, 20, 21]
dict_items([('张三', 18), ('李四', 20), ('王五', 21)])
[('张三', 18), ('李四', 20), ('王五', 21)]

字典的遍历

dict5 = {"张三": 18, "李四": 20, "王五": 21}
for i in dict5:
    print(i,dict5.get(i))

输出:
[('张三', 18), ('李四', 20), ('王五', 21)]
张三 18
李四 20
王五 21

字典生成式

    new_list = ["张三", "李四", "王五", "赵六"]
    new_list2 = [11,15,13,16,15,19]
    lst = zip(new_list,new_list2)
    print(dict(lst))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值