Python教程之字典(基于Python3.8)(三)

字典

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

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

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

新建

# 创建一个空字典
dic = {}
print(dic, type(dic))

# 创建一个字典
# 直接创建
dic0 = {"Name": "Tom", "age": 18}
print("dic0:{}".format(dic0))

# 通过关键字dict及其参数创建
dic1 = dict(Name="LiMing", age=20)
print("dic1:{}".format(dic1))

# 通过二元数组创建
array = [('Name', "小白"), ('age', 20)]
dic2 = dict(array)
print("dic2:{}".format(dic2))

# 使用zip函数和key/value列表创建
keys = ['name', 'age']
values = ['LiuXiang', 20]
dic3 = dict(zip(keys, values))
print("dic3:{}".format(dic3))

# 字典推导式
dic4 = {i: 2 * i for i in range(3)}
print("dic4:{}".format(dic4))

# 通过dict.fromkeys()用来初始化字典, 设置value的默认值
dic5 = dict.fromkeys(range(3), 'x')
print("dic5:{}".format(dic5))

# 动态分配键值
dic6 = {}
dic6['Name'] = "DaBai"
dic6['age'] = 18
print("dic6:{}".format(dic6))

# 使用映射创建
dic7 = dict({"Name": "YingShe", "age": 30})
print("dic7:{}".format(dic7))

{} <class ‘dict’>
dic0:{‘Name’: ‘Tom’, ‘age’: 18}
dic1:{‘Name’: ‘LiMing’, ‘age’: 20}
dic2:{‘Name’: ‘小白’, ‘age’: 20}
dic3:{‘name’: ‘LiuXiang’, ‘age’: 20}
dic4:{0: 0, 1: 2, 2: 4}
dic5:{0: ‘x’, 1: ‘x’, 2: ‘x’}
dic6:{‘Name’: ‘DaBai’, ‘age’: 18}
dic7:{‘Name’: ‘YingShe’, ‘age’: 30}

参考:

Python创建字典的八种方式:jb51.net/article/157029.htm
Python中创建字典的几种方法:https://blog.csdn.net/u014291497/article/details/51052139

访问字典

# 初始化字典
dic = {"Name": "XiaoBai", "Age": 20, "Sex": "female"}
# 访问字典里的值
print("dic[Name]:{}".format(dic["Name"]))
print("dic[Age]:{}".format(dic["Age"]))
print("dic[Sex]:{}".format(dic["Sex"]))
# 获取字典指定键的值,如不存在返回None
dic_get_College = dic.get("College")
# 获取字典指定键的值,如不存则添加键并设置None
dic_get_set_College = dic.setdefault("College")
print("dic_get_College:{}".format(dic_get_College))
print("dic_get_set_College:{}".format(dic_get_set_College))
print(dic)

dic[Name]:XiaoBai
dic[Age]:20
dic[Sex]:female
dic_get_College:None
dic_get_set_College:None
{‘Name’: ‘XiaoBai’, ‘Age’: 20, ‘Sex’: ‘female’, ‘College’: None}

修改字典

# 初始化字典
dic = {"Name": "XiaoBai", "Age": 20, "Sex": "female"}
# 更新字典的值
dic["Age"] = 40
# 添加信息
dic["School"] = "CityCollege"

# 用字典更新字典
dic2 = {"price":4399,"Name":"Computer"}
dic.update(dic2)

print(dic)

{‘Name’: ‘Computer’, ‘Age’: 40, ‘Sex’: ‘female’, ‘School’: ‘CityCollege’, ‘price’: 4399}

删除字典元素

# 初始化字典
dic = {"Name": "XiaoBai", "Age": 20, "Sex": "female"}
# 删除字典的键
del dic["Name"]
# 删除给定key的值
dic.pop("Age")

# 清空字典
dic.clear()

# 删除字典
del dic

字典的迭代

# 初始化字典
dic = {"Name": "XiaoBai", "Age": 20, "Sex": "female", "School": "CityCollege"}

# 遍历所有键
for i in dic:
    print(i, end=" ")

# 遍历所有键
for i in dic.keys():
    print(i, end=" ")

# 遍历所有值
for i in dic.values():
    print(i, end=" ")

# 遍历所有键值对
for i in dic.items():
    print(i, end=" ")

Name Age Sex School
Name Age Sex School
XiaoBai 20 female CityCollege
(‘Name’, ‘XiaoBai’) (‘Age’, 20) (‘Sex’, ‘female’) (‘School’, ‘CityCollege’)

字典排序问题

# 初始化字典
str0 = "defabcg"
keys = list(str0)
values = [2, 7, 8, 3, 6, 5, 9]
dic = dict(zip(keys, values))
print(dic)

# 按值排序(逆序)
items = list(dic.items())
items.sort(key=lambda x: x[1], reverse=True)
dic = dict(items)
print(dic)

# 按值排序(正序)
items = list(dic.items())
items.sort(key=lambda x: x[0], reverse=False)
dic = dict(items)
print(dic)

{‘d’: 2, ‘e’: 7, ‘f’: 8, ‘a’: 3, ‘b’: 6, ‘c’: 5, ‘g’: 9}
{‘g’: 9, ‘f’: 8, ‘e’: 7, ‘b’: 6, ‘c’: 5, ‘a’: 3, ‘d’: 2}
{‘a’: 3, ‘b’: 6, ‘c’: 5, ‘d’: 2, ‘e’: 7, ‘f’: 8, ‘g’: 9}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值