首页 > 编程语言 > 详细

Python学习之dict

时间:2021-06-17 12:21:40      阅读:14      评论:0      收藏:0      [点我收藏+]

dict

字典是一个可变容器模型,且可以存储任意类型对象。

使用键-值(key-value)存储,每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,格式如下:

d = {key1 : value1, key2 : value2 }
  • 访问字典里的元素

    直接通过方括号访问键所对应的值

    实例:

dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
print("小黄的成绩:", dict_score["小黄"])  # 打印小黄的成绩

    结果:

技术分享图片

    当访问的key不存在时,直接访问会报错,可以通过以下方式避免

    方法1:通过 in 判断字典中是否存在key

    方法2:通过get方法,如果key不存在,返回None,也可以自定义返回的信息

    实例:

dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
# 当key不存在时
# 方法1 通过in判断字典是否存在键值对
if "小花" in dict_score:
    print("小花的成绩:", dict_score["小花"])
else:
    print("没有小花的成绩")

# 方法2 通过get判断,不存在,默认返回None,也可以自定义返回的信息
print(dict_score.get("小米", "没有小米的成绩"))

    结果:

技术分享图片

  • 修改字典里的元素

    将需要修改的键重新赋值

    实例:

dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
dict_score["小丽"] = 99    # 修改小丽的成绩
print("修改小丽成绩后的字典:", dict_score)

    结果:

技术分享图片

  • 新增元素

    直接增加键值对

    实例:

dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
dict_score["小强"] = 95    # 新增小强的成绩
print("新增成绩后的字典:", dict_score)

    结果:

技术分享图片

  • 删除元素

    可以删除某个键值对或者清空字典

    实例:

dict_score = {"小红": 99, "小黄": 98, "小明": 100, "小丽": 90}
print("原成绩字典:", dict_score)
del dict_score["小明"]     # 删除小明
print("删除小明成绩后的字典:", dict_score)
dict_score.pop("小黄")
print("删除小黄成绩后的字典:", dict_score)
dict_score.clear()      # 清空字典
print("清空字典后:", dict_score)
del dict_score      # 删除字典

    结果:

技术分享图片

  • 字典的特性

  1. 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
  2. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
  3. 键必须不可变,所以可以用数字,字符串或元组充当,用列表就不行
  • 函数

技术分享图片

     实例:

dict_age = {"小红": 20, "小橙": 18, "小黄": 22, "小绿": 19, "小青": 16}
dict_age2 = {"小蓝": 20, "小紫": 21}
print("原字典:", str(dict_age))
print("字典长度:", len(dict_age))
# 返回指定key的值
print(dict_age.get("小溪", "没有小溪"))
print("小黄:%s" % dict_age.get("小黄"))

dict_age.setdefault("小小", 17)
print("键不存在,添加后的字典:", dict_age)

# 浅复制
dict_age_copy = dict.copy(dict_age)
print("浅复制后的字典:", dict_age_copy)

# 以列表返回可遍历的(键, 值) 元组数组
itmes_age = dict_age.items()
print("字典列表:%s" % str(itmes_age))
# 遍历字典列表
for key, values in itmes_age:
    print(key, values)

# 以列表返回一个字典所有的键
keys_age = dict_age.keys()
print("返回所有的键:% s" % keys_age)

# 以列表返回字典中的所有值
values_age = dict_age.values()
print("返回所有的值: % s" % values_age)

# 更新字典
dict_age.update(dict_age2)
print("更新后的字典:", dict_age)

# 返回并删除字典中最后一对键和值
dict_age.popitem()
print("删除最后一对键值后的字典:", dict_age)

# 删除或清空字典
dict_age.pop("小红")
print("删除小红后的字典:", dict_age)
dict_age.clear()
print("清空字典后:", dict_age)

# 创建新的字典
subject = (java, python, javascript)
dict_sub = dict.fromkeys(subject)
print("学科新字典1 %s" % str(dict_sub))
dict_sub = dict.fromkeys(subject, 20)
print("学科新字典2 %s" % str(dict_sub))

    结果:

技术分享图片

Python学习之dict

原文:https://www.cnblogs.com/rissa/p/14892619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!