字典对中文字符串进行排序 python_python-对字典进行排序

方法一:使用sorted函数进行排序

sorted(iterable,key,reverse)

参数:

iterable:表示可以迭代的对象,例如可以是dict.items()、dict.keys()等

key:是一个函数,用来选取参与比较的元素

reverse:用来指定排序是倒序还是顺序,reverse=True则是降序,reverse=False时则是升序,默认时reverse=False

一、对字典的键(key)进行排序

dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1} #定义一个字典

1)dict1_sorted_keys = sorted(dict1.keys())

# 使用位置参数,将dict1.keys()传给iterable,按照dict1的键进行升序排列

print(dict1_sorted_keys)

2)dict1_sorted_items = sorted(dict1.items())

print(dict1_sorted_items)

3)dict1_sorted_items1 = sorted(dict1.items(),key = lambda x:x[0],reverse = True)

print(dict1_sorted_items1)

输出结果分别为:

[0, 1, 2, 3, 4, 5, 9]

[(0, 3), (1, 2), (2, 1), (3, 8), (4, 1), (5, 14), (9, 6)]

[(9, 6), (5, 14), (4, 1), (3, 8), (2, 1), (1, 2), (0, 3)]

二、对字典的值(value)进行排序

dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}

dict1_sorted_values = sorted(dict1.items(),key = lambda x:x[1],reverse = True)

print(dict1_sorted_values)

输出结果为:

[(5, 14), (3, 8), (9, 6), (0, 3), (1, 2), (4, 1), (2, 1)]

方法二:使用operator.itemgetter进行排序

operator.itemgetter:获取对象的哪些维的数据,参数为一些序号

例:

test=[1,2,3,4,5]

itemgetter0=operator.itemgetter(0)

itemgetter0(test) #itemgetter0是作为一个函数作用在test上面

结果为:1

itemgetter1=operator.itemgetter(1)

itemgetter1(test)

结果为:2

一:按键(key)排序

import operator

dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}

dict1_sorted_keys = sorted(dict1.items(),key=operator.itemgetter(0))

dict1_sorted_keys1 =sorted(dict1.items(),key=operator.itemgetter(0),reverse=True)

print(dict1_sorted_keys)

print(dict1_sorted_keys1)

输出结果分别为为:

[(0, 3), (1, 2), (2, 1), (3, 8), (4, 1), (5, 14), (9, 6)]

[(9, 6), (5, 14), (4, 1), (3, 8), (2, 1), (1, 2), (0, 3)]

二:按值(values)排序

dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}

dict1_sorted_values = sorted(dict1.items(),key=operator.itemgetter(1))

dict1_sorted_values1 =sorted(dict1.items(),key=operator.itemgetter(1),reverse=True)

print(dict1_sorted_values)

print(dict1_sorted_values1)

输出结果分别为为:

[(4, 1), (2, 1), (1, 2), (0, 3), (9, 6), (3, 8), (5, 14)]

[(5, 14), (3, 8), (9, 6), (0, 3), (1, 2), (4, 1), (2, 1)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值