from collections import OrderedDict from collections import namedtuple class Student: def __init__(self,name,age): self.name = name self.age = age ''' dict --> 字典是无序的,你输出的结果可能每次都不一样(指的是顺序) OrderedDict --> ''' ages = {'a':20, 'b':5, 'c':10, 'd':8, 'e':12} ''' #输出(key,value) for item in ages.items(): print(item) ('a', 20) ('e', 12) ('b', 5) ('c', 10) ('d', 8) ''' ''' #输出(key,value) for k, v in ages.items(): print(k, v) ''' ''' #输出key for item in ages.keys(): #等价于for item in ages:默认是按照进行输出 print(item) c b e d a ''' ''' #输出value for item in ages.values(): print(item) 5 12 10 20 8 ''' ''' #关于字典的操作 for k in ages: ages[k] = ages[k] print(ages) ''' #注意以下两种的区别 #ages[key] = [value1,value2] 每一个key对应一个列表 for item in ages.keys(): ages[item] = [item] print(ages) #{'d': ['d'], 'b': ['b'], 'e': ['e'], 'c': ['c'], 'a': ['a']} for item in ages.keys(): ages[item] = [item,None] print(ages) #{'d': ['d', None], 'b': ['b', None], 'e': ['e', None], 'c': ['c', None], 'a': ['a', None]} ages = {'a':20, 'b':5, 'c':10, 'd':8, 'e':12} for item in ages.keys(): ages[item] = [ages[item],None] print(ages) #对列表进行排序 #因为item是输出(key, value) p[1]相当于取出value 若value有多个值,则按照顺序排列 ages_sort = sorted(ages.items(), key=lambda p:p[1],reverse=True) print(ages_sort) ages = {'a':[20,20], 'b':[20,21], 'c':[10, 1], 'd':[8, 1], 'e':[12, 2]} ages_sort = sorted(ages.items(), key=lambda p:p[1][0],reverse=True) ages_sort = sorted(ages.items(), key=lambda p:p[1][1],reverse=True) print(ages_sort) #有序输出字典,操作也可以和上面一样 od = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) print(od) #OrderedDict([('a', 1), ('b', 2), ('c', 3)])
字典的操作详解
最新推荐文章于 2022-08-14 21:34:06 发布