Python字典以及相关函数使用

版权声明:本文为博主原创文章,未经博主允许不得转载。不准各种形式的复制及盗图 https://blog.csdn.net/qq_26816591/article/details/88101193
# 不可变类型:整型,字符串,元组
# 可变类型:列表,字典  不能用作键值名
dic = {
    'name': 'joe',
    'age': '35',
    'hobby': {
        'girl_name': 'Miss_cloud',
        'age': 32
    },
    'handsome': True
}
print(dic)
print(dic['hobby'])
# 字典的两个特点:无序,键唯一 (覆盖掉)
# 字典的创建的两种方式
a = list([1, 2, 3, 4, 5])  # 转换为一个列表
print(a)
a = dict([['name', 'joe'], ])
print(a)
# 增加  有就覆盖 没有就添加
# 方法一
dic1 = {'name': 'joe.smith'}
dic1['age'] = 23
print(dic1)
# 方法二
dic1.setdefault('age', 24)  # 有就不修改 有返回值 返回值为已经存在的键值的值
print(dic1)
dic1.setdefault('hobby', 'girls')  # 没有就修改 添加 有返回值 返回值为刚添加的键值的值
print(dic1)
# 查询  通过键值对
dic2 = {'name': 'joe.smith', 'age': 23}
print(dic2['name'])
print(dic2.keys())
#   获取键 转化为列表
print(list(dic2.keys()))
#   获取值 转化为列表
print(list(dic2.values()))

# 修改
dic1.update(dic2)  # 添加
print(dic1)
print(dic2)

# 删除
print(dic2)
del dic2['name']  # 删除 键值 也可以删除整个字典
print(dic2)

dic2.clear()  # 清空
print(dic2)

dic2.setdefault('name', 'joe.smith')  # 添加
print(dic2)
flag = dic2.pop('name')  # 有返回值
print(flag)  # 返回删除的键的值
print(dic2)

dic2.setdefault('name', 'joe.smith')  # 添加
print(dic2)
flag = dic2.popitem()  # 随机删除某个键值对 并返回值元组形式
print('随机', flag, dic2)

# 其他操作

dic3 = dic1.fromkeys(['zhangsan', 'lisi', 'wangwu'], '45')  # 多个键 同时赋值
print(dic3)

dic3 = dic1.fromkeys(['zhangsan', 'lisi', 'wangwu'], ['45', '60'])  # 多个键 同时赋值 还是都赋值相同的值
print(dic3)

# 排序
dic = {1: 'zhangsan', 2: 'lisi', 6: 'wangwu'}
print('字典直接排序', sorted(dic))  # 字典排序
print('值排序', sorted(dic.values()))  # 值排序
print('键排序', sorted(dic.keys()))  # 键排序 直接排序和键排序输出结果一样 说明 直接排序就是根据键排序

# 遍历
print('方式1')
for i in dic:
    print(i, dic[i])  # 方式一
print('方式2')
for i, v in dic.items():  # 方式二
    print(i, v)

要点:

  • 不可变类型:整型,字符串,元组
  • 可变类型:列表,字典。(不能用作键名)
  • 字典的特点:无序,键唯一。(如果有相同键,会被覆盖)
  • 添加键值对,直接赋值给字典,有该键则覆盖,没有则添加
  • 添加键值对,dic.setdefault('age',24) 有该键则返回该键的值,没有则添加
  •  查询键值对,dic['name'] 直接写要查询键
  • 查询键值对,dic.keys() 获取所有键,dic.values()获取所有值
  • 转成列表,list(dic.keys()) list(dic.values())
  • 修改键值对,dic1.update(dic2) 
  • 删除键值对,del dic['name']、dic.clear()(清空)、dic.pop()(有返回值)、dic.popitem()(随机删除某键值对并返回元组)
  • 赋值键值对,dic.fromkeys(['laowang','laoli'],'45')(多个键同时赋值)
  • 字典排序,sorted(dic)(直接排序)、sorted(dic.keys())(键排序)、sorted(dic.values())(值排序)
  • 遍历字典,for i in dic:***dic[i]***、for i,v in dic.items():***i,v***

猜你喜欢

转载自blog.csdn.net/qq_26816591/article/details/88101193