python -- 字典

本贴最后更新于 786 天前,其中的信息可能已经天翻地覆

一、字典特性

  1. 通过花括号进行定义,键值对的形式存在(key :val)
  2. key不能重复
  3. 字典是无序的

二、字典创建

test_dict = {'key1':'val1','key2':'val2'}

test_dict2 = dict(a=1,b=2,c=3)

三、字典取值

  1. 通过key获取value(如果key不存在就会报错)
test_dict2=dict(a=1,b=2,c=3)
res = test_dict2["a"]
print(res)
  1. 通过字典的get方法获取value
test_dict2=dict(a=1,b=2,c=3)#创建字典
res = test_dict2.get("b")#获取存在的key
print(res)#打印

test_dict2=dict(a=1,b=2,c=3)#创建字典
res = test_dict2.get("d","121")#获取不存在的key,自定义一个返回值,不会报错
print(res)#打印
  1. 获取所有的key(获取到的数据类型是dict_keys不能直接取值,需要转换list)
test_dict=dict(a=1,b=2,c=3)#创建字典
res = test_dict.keys()
print(list(res))#转换成list,再打印
  1. 获取所有的value(获取到的数据类型是dict_values不能直接取值,需要转换list)
test_dict=dict(a=1,b=2,c=3)#创建字典
res = test_dict.values()
print(list(res))#转换成list,再打印
  1. 获取所有的key和value(获取到的数据类型是dict_items不能直接取值,需要转换list)
test_dict=dict(a=1,b=2,c=3)#创建字典
res = list(test_dict.items())
print(res)#打印


  1. 遍历key和value(使用for循环)
test_dict=dict(a=1,b=2,c=3)#创建字典
for key in test_dict:#for循环key
    print(key)#打印
test_dict=dict(a=1,b=2,c=3)#创建字典
for val in test_dict.values():#for循环val
    print(val)#打印
test_dict=dict(a=1,b=2,c=3)#创建字典
for key,val in test_dict.items():#for循环val,val
    print(key,val)#打印

四、修改字典

  1. 通过key修改对应的value
test_dict=dict(a=1,b=2,c=3)#创建字典
test_dict["a"] = "test"
print(test_dict)#打印
  1. 添加一个键值对 setdefault
test_dict=dict(a=1,b=2,c=3)#创建字典
test_dict.setdefault('key','value')
print(test_dict)

  1. 合并字典 update
test_dict=dict(a=1,b=2,c=3)#创建字典
test_dict2=dict(d=4,e=5,f=6)#创建字典
test_dict.update(test_dict2)
print(test_dict)#打印

五、字典删除

  1. 通过key删除对应的键值对,无返回值 del
test_dict=dict(a=1,b=2,c=3)#创建字典
del test_dict["a"]
print(test_dict)
  1. 删除指定的key对应的键值对,返回删除的key对应的value(pop)
test_dict=dict(a=1,b=2,c=3)#创建字典
res = test_dict.pop('a')
print(res)
  1. 随机删除一个键值对(popitem)
test_dict=dict(a=1,b=2,c=3)#创建字典
res = test_dict.popitem()
print(res)
print(test_dict)
  1. 清空字典(clear)
test_dict=dict(a=1,b=2,c=3)#创建字典
test_dict.clear()
print(test_dict)

六、字典排序

import operator
test_dict=dict(b=2,a=1,c=3)#创建字典
res = sorted(test_dict.items(),key=operator.itemgetter(1))
print(dict(res))
回帖
请输入回帖内容 ...