sorted python dict_【Python】字典Dict使用总结(重点:排序)

在Java语言中,Python的字典语言相当于Map的数据结构,也是日常开发中经常使用的键值对各式数据结构。

1.字典的创建与操作

字典最基本的创建方式是:

字典内部是一系列的“键:值”对,一组中的键与值用“:”分隔开,不同的键值对使用“,”分割,整个字典用大括号括起来。需要注意的是:字典是无序的,当然创建字典的方式还可以使用dict()函数创建一个空的字典,也可以使用{}直接创建空的字典,也可以通过tuple,list的方式辅助创建。字典的基本操作有:查询,插入,删除,具体代码如下:

输出结果:

总结

假设我们有一字典D

– 查询:D[key]就会返回key对应的值

– 修改:D[key] = new_value 就可以修改key对应的值

– 插入:D[new_key] = new_value,需要注意的是,如果字典中有该键,则会覆盖之前的内容,你也可以理解为修改之前的值

– 删除:del D[key],删除对应key的键值对

2.字典的遍历

尽管字典是无序的,但是有时候我们需要将它按照一定的顺序打印出来,一个最简单的方法就是获取字典中所有的键值,并把它存到一个list中,然后通过一个一个键再获取对应的值。这种方法,我们还可以对键的list进行排序后再输出,也就间接地对字典进行了排序。示例如下:

输出结果如下:

3.字典排序

虽然上部分介绍了字典的排序,但是还是相对麻烦,本部分借助Python中的sorted()函数对字典进行排序。本部分内容主要参考文献1

3.1 使用sorted()排序

实例如下:

sorted()函数默认是给字典的键进行排序。

3.2 对键反向排序

我们继续使用sorted()函数的属性对键值进行反向排序,实例如下:

3.3 对值排序

在第2部分中已经介绍了通过.values()获取自己的值,那么我们可以进一步地对自己进行排序。实例如下:

同理,我们在sorted()函数中加入reverse=True的属性,那么就会进行反向排序。

重点:我们也可以使用.items()得到包含键、值得元组,然后指定key进行排序,其中使用匿名函数lambda来指定是根据键排序,还是根据值排序。示例如下:

3.4 拓展:使用itemgetter函数对字典排序

其实以上得字典排序已经够了,代码示例如下:

这里得排序是根据选择键、值进行排序。operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些索引或键值,这里不展开探讨。

Reference

1.https://blog.csdn.net/ustbbsy/article/details/79637594

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的字典dict)不支持排序,因为字典是无序的键值对集合。不过,我们可以利用sorted函数对字典的键(key)进行排序,并返回一个排序后的列表。具体操作如下: 1. 首先,我们需要一个字典作为输入。假设我们有一个字典d = {'b': 2, 'a': 1, 'c': 3}。 2. 使用sorted函数对字典的键进行排序,并将结果保存到一个新的列表中。列表的元素是按照键的排序顺序依次排列的。代码示例为sorted_keys = sorted(d.keys())。 3. 最后我们可以通过迭代sorted_keys列表,访问字典中的值。例如,可以使用for循环遍历sorted_keys,并打印每个键和对应的值。代码示例为:for key in sorted_keys: print(key, d[key])。 总结:通过sorted函数可以对字典的键进行排序,并返回一个排序后的键列表。然后,可以通过对排序后的键列表进行迭代,访问字典中的键和值。 ### 回答2: Python的`dict`类型是无序的键值对集合,`sorted()`函数可以对`dict`进行排序并返回一个有序的字典。 首先,我们需要明确字典本身是无序的,只是在Python 3.7及其之后的版本中,字典会以插入顺序来保持键值对的顺序。如果要按照键或值对字典进行排序,可以使用`sorted()`函数。 `sorted()`函数可以接受一个可迭代对象,并返回一个新的已排序的列表。如果我们想对字典按照键排序,可以使用`sorted()`函数的`key`参数来指定排序的准则。 下面是一个示例,展示了如何使用`sorted()`函数对字典按照键进行排序并返回有序的字典: ```python student_scores = {'Alice': 85, 'Bob': 75, 'Charlie': 90, 'David': 80} sorted_scores = sorted(student_scores.items(), key=lambda x: x[0]) sorted_dict = dict(sorted_scores) print(sorted_dict) ``` 输出结果为: ``` {'Alice': 85, 'Bob': 75, 'Charlie': 90, 'David': 80} ``` 上述代码中,我们将`student_scores`字典的键值对转换为元组并使用`sorted()`函数进行排序,`key`参数使用`lambda`函数指定了按照键进行排序的准则。最后,我们将排序后的元组转换回字典,并将结果打印出来。 需要注意的是,由于字典是无序的,即使使用`sorted()`函数对字典排序后获得了有序的字典,在其他版本或执行时,顺序可能会被改变。因此,在实际应用中,如果需要按照键或值对字典进行排序并保持顺序,建议使用`collections`模块中的`OrderedDict`类型。 ### 回答3: Python中的字典dict)是一种无序的数据类型,其中的键-值对是没有固定顺序的。然而,我们可以使用内置函数sorted()来对字典进行排序,返回一个排序后的列表。下面是一个示例: ```python # 定义一个字典 my_dict = {'b': 2, 'c': 1, 'a': 3} # 使用sorted函数对字典进行排序 sorted_dict = sorted(my_dict.items()) # 打印排序后的结果 print(sorted_dict) ``` 上述代码中,我们先定义了一个字典my_dict,其中包含了三个键-值对。然后,我们使用sorted()函数对字典的items()方法返回的键值对进行排序。最后,将排序后的结果赋值给sorted_dict变量,并打印输出。 运行以上代码,将会输出以下结果: ``` [('a', 3), ('b', 2), ('c', 1)] ``` 这里,我们得到了一个排序后的列表,其中的元素是按照键的字母顺序排列的。在这个排序后的列表中,每个元素都是一个包含键和值的元组。 需要注意的是,sorted()函数返回的是一个列表,而不是一个字典。因为字典本身是无序的,所以无法直接返回一个有序的字典。如果你需要使用有序的字典结构,可以考虑使用collections模块中的OrderedDict类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值