统计list中元素的个数构成字典
两种方法:
1.自建字典
freqDict = {}
for x in nums:
freqDict[x] = 1 if x not in freqDict else freqDict[x]+1
2.collection库中的Counter方法
count = collections.Counter(nums)
取出字典所有的键
my_dict.keys()
# 或者
data = set(my_dict)
取出字典所有的值
value_list = my_dict.values()
取出字典某个键的值
value = my_dict["key"] # 如果没有这个键就抛出异常
# 或者
value = my_dict.get("key") # 如果没有这个键就返回None
同时取出键与值
for key, value in my_dict.items():
print(key,value)
# 或者
for item in my_dict.items():
print(item) # 这样取值的话,返回的就是一个元组,里面包含两个元素,第一个是键,第二个为值
根据键排序
d = {'d1':2, 'd2':4, 'd4':1,'d3':3,}
for k in sorted(d):
print(k,d[k])
根据值排序
d = {'d1':2, 'd2':4, 'd4':1,'d3':3,}
for k in sorted(d,key=d.__getitem__):
print(k,d[k])
# 或者
res = sorted(d.items(),key=lambda d:d[1])
print(res)
# 或者
print(sorted(d.items(), key = lambda d:(d[1], d[0])))
字典倒置(键值对互换)
(前提:值唯一)
1.
mydict={"a":1,"b":2,"c":3}
mydict_new={}
for key,val in mydict.items():
mydict_new[val]=key
# 或者
mydict_new = {v: k for k, v in m.items()}
2.
mydict={"a":1,"b":2,"c":3}
mydict_new=dict([val,key] for key,val in mydict.items())
3.
mydict={"a":1,"b":2,"c":3}
mydict_new=dict(zip(mydict.values(),mydict.keys()))