python---关于字典的操作

在python中,字典是存储键值对的数据结构。类似于c++和java中的map一样,也是无序的

m_dict = {'name':'张三', 'id':'100', 'sex':'男', 'address':'北京'}
print(m_dict)   # {'name': '张三', 'id': '100', 'sex': '男', 'address': '北京'}
  • mdict = {key1 : value1, key2 : value2 }
  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值覆盖前一个
  • 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

创建

# 创建空字典
mdict1 = {}
ndict1 = dict()
print(mdict1)   # {}
print(ndict1)   # {}
# 创建非空字典
dict1 = {"a":1, "b":2, "c":3}
dict2 = dict(a=1, b=2, c=3)
dict3 = dict((("a",1), ("b",2)))
dict4 = dict([("a",1), ("b",2)]) 
print(dict1)    # {'a': 1, 'b': 2, 'c': 3}
print(dict2)    # {'a': 1, 'b': 2, 'c': 3}
print(dict3)    # {'a': 1, 'b': 2}
print(dict4)    # {'a': 1, 'b': 2}

键值访问

dict1 = {"id":1001, "name":"张三", "age":23, "income":30000}
print(dict1)

print("姓名:", dict1["name"])
print("收入:", dict1["income"])
print("地址:", dict1["add"])  # key不存在就报错 KeyError: 'add'  
print("地址:", dict1.get("add")) # key不存在用get取返回None,不抱错

修改(key存在修改,不存在添加)

dict1 = {"id":1001, "name":"张三", "age":23, "income":30000}
dict1["name"] = "李四"
print(dict1)    # {'id': 1001, 'name': '李四', 'age': 23, 'income': 30000}
dict1["address"] = "北京"
print(dict1)    # {'id': 1001, 'name': '李四', 'age': 23, 'income': 30000, 'address': '北京'}

删除 pop clear del

  • pop : 删除指定数据,且返回删除key对应的value,如果字典内有指定的key对应的值,返回设定值,如果没有设定值就会报错
  • clear : 删除字典内所有数据
  • del : 删除指定数据,或者删除整个字典
dict1.pop("id")  # pop删除,key不存在报错
print(dict1)

dict1.clear()  # 全部清空
print(dict1)

del dict1["id"]
print(dict1)

遍历

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4yC6CgBK-1582421491349)(D70F159C2DD84DC39C2111ECC9AE4B0B)]

遍历key

dict1 = {"id":1001, "name":"小王王", "age":23, "income":30000}
# 遍历key
print("字典的所有的key:")     # 字典的所有的key:
for i in dict1.keys():
    print(i, end=" ")       # id name age income 

遍历value

dict1 = {"id":1001, "name":"小王王", "age":23, "income":30000}
print("字典所有的value:")
for i in dict1.values():
    print(i, end=" ")   # 1001 小王王 23 30000 

遍历键值

dict1 = {"id":1001, "name":"小王王", "age":23, "income":30000}
print("字典所有的key-value:1")
for i,j in dict1.items():
    print("{}:{}".format(i, j))

# 字典所有的key-value:1
# id:1001
# name:小王王
# age:23
# income:30000

遍历项

dict1 = {"id":1001, "name":"小王王", "age":23, "income":30000}
print("字典所有的key-value:2")
for i in dict1.items():
    print(i)

# ('id', 1001)
# ('name', '小王王')
# ('age', 23)
# ('income', 30000)

按顺序遍历所有的键

m_dict = {"a":"我是a", "b":"我是b", "c":"我是c"}
for i in sorted(m_dict.keys(), reverse=True):
    print(i, end="  ")  # c  b  a  

在这里插入图片描述

发布了221 篇原创文章 · 获赞 113 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42363032/article/details/104454908