字典的操作详解

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)])




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值