python中的字典类型感觉相当于C++中的map容器
1、字典类型的定义
- 键值对:键是数据索引的扩展
- 字典是键值对的集合,键值对之间无序
- 采用大括号{}和dict()创建,键值对用冒号:表示
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>d
输出结果为:{'中国':'北京','美国':'华盛顿','法国':'巴黎'}
>>>d["中国"]
>'北京'
2、字典类型处理函数和方法
>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>"中国" in d
输出结果为:True
>>>d.keys()
输出结果为:dict_keys(['中国', '美国', '法国'])
>>>d.values()
输出结果为:dict_values(['北京', '华盛顿', '巴黎'])
>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>d.get("中国","伊斯兰堡")
输出结果为:'北京'
>>>d.get("巴基斯坦","伊斯兰堡")
输出结果为:‘伊斯兰堡’
>>>d.popitem()
输出结果为:('美国','华盛顿')
- 定义空字典:d={}
- 向d新增2个键值对元素:d[“a”]=1;d[“b”]=2
- 修改第2个元素:d[“b”]=3
- 判断字符"c"是否是d的键:“c” in d
- 计算d的长度:len(d)
- 清空d:d.clear()
3、遍历字典
for key, value in dic.items():
print(key, value, end="\n")
#将字典按Value排序
#由于dict是无序的,所以只能用list去排序,把dict的key和value保存为tuplue对象
a = ["a", "b", "a", "c", "a", "c", "b", "d", "e", "c", "a", "c"]
# set集合去重
duixiang = set(a) # 先去重,取出计数对象
# 保存为dict,一一对应
d = {}
for i in duixiang:
d[i] = a.count(i)
# 对字典按value排序
a = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(a)
sorted(d.items(), key=lambda x: x[1]) 中 d.items() 为待排序的对象;key=lambda x: x[1] 为对前面的对象中的第二维数据(即value)的值进行排序。 key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。