字典
dic(key,value)
- 首先构建一个字典
dic1 = {}
dic1[1] = 3
dic1[2] = 19
dic1[5] = 6
dic1[4] = 12
print(dic1)
# output
{1: 3, 2: 19, 5: 6, 4: 12}
- 单独取出字典的键
keys
ks = dic1.keys()
print(ks,type(ks))
# output
dict_keys([1, 2, 5, 4]) <class 'dict_keys'>
- 单独取出字典的值
values
vs = dic1.values()
print(vs,type(vs))
# output
dict_values([3, 19, 6, 12]) <class 'dict_values'>
将单独取出的键(keys)或值(values)转化为列表,只需要
list(ks)
或者list(vs)
。
- 同时取出字典的键(keys)和值(values)
ies = dic1.items()
print(ies,type(ies))
# output
dict_items([(1, 3), (2, 19), (5, 6), (4, 12)]) <class 'dict_items'>
- 对字典按值(values)进行排序
# 升序排序
sa_dic1 = sorted(dic1.items(),key=lambda kv:(kv[1],kv[0]))
print(sa_dic1,type(sa_dic1))
# 降序排序
sd_dic1 = sorted(dic1.items(),key=lambda kv:(kv[1],kv[0]),reverse=True)
print(sd_dic1,type(sd_dic1))
# output
[(1, 3), (5, 6), (4, 12), (2, 19)] <class 'list'>
[(2, 19), (4, 12), (5, 6), (1, 3)] <class 'list'>
- 对字典按键(keys)进行排序
# 升序排序
ka_dic1 = []
for i in sorted(dic1,reverse=False):
a = (i,dic1[i])
ka_dic1.append(a)
print(ka_dic1)
# output
[(1, 3), (2, 19), (4, 12), (5, 6)]
sorted(dic1)
输出的是对字典键的排序,输出类型为列表。输出:[1, 2, 4, 5] <class ‘list’>
- 排序后仍为字典
dic3 = {"name": "Taobao", "age": 100}
new_dic = {}
for k in sorted(dic3):
new_dic[k] = dic3[k]
print(new_dic)
# output
{'age': 100, 'name': 'Taobao'}
- 将键(keys)与值(values)对调
dic2 = {v:k for k,v in dic1.items()}
print(dic2)
# output
{3: 1, 19: 2, 6: 5, 12: 4}
- 字典列表排序(例子来源菜鸟教程)
lis = [{"name": "Taobao", "age": 100},
{"name": "Runoob", "age": 7},
{"name": "Google", "age": 100},
{"name": "Wiki", "age": 200}]
# 通过 age 升序排序
print("列表通过 age 升序排序: ")
print(sorted(lis, key=lambda i: i['age']))
print("\r")
# 先按 age 排序,再按 name 排序
print("列表通过 age 和 name 排序: ")
print(sorted(lis, key=lambda i: (i['age'], i['name'])))
print("\r")
# 按 age 降序排序
print("列表通过 age 降序排序: ")
print(sorted(lis, key=lambda i: i['age'], reverse=True))