1. python怎么对字典进行排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:
1 下面的是按照value的值从大到小的顺序来排序。
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
输出的结果:
[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]
下面我们分解下代码
print dic.iteritems() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。
2 对字典按键(key)排序:
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) d[0]表示字典的键
print dict
2. python如何用字典统计列表中不同元素个数
在PyCharm中创建一个新的Python文件,并定义一个列表`k`,为其分配值。请点击输入图片描述
然后,定义一个空字典`j`,用于存储列表`k`中的元素及其出现次数。请点击输入图片描述
使用`for...in`循环遍历列表`k`,对于每个元素,如果它已经在字典`j`中,则增加其计数;如果它是新的元素,则将其添加到字典中并设置计数为1。请点击输入图片描述
接下来,使用另一个循环遍历字典`j`,并打印出每个键(即列表中的元素)及其对应的值(即出现次数)。请点击输入图片描述
保存并运行Python文件,查看控制台输出的结果。请点击输入图片描述
您可以修改列表`k`中的元素,添加新的元素,然后再次运行代码以查看打印出的结果。请点击输入图片描述
3. Python之字典排序,这篇文章里,return的东西有点看不懂
return [value for key, value in items] #返回一个“由字典项的值组成的列表[]
比如字典items是{ 'a':0, 'b':1, 'c':2}
将返回[0,1,2]
return [adict[key] for key in keys] #将以字典keys的键作为字典adict的键,返回一个“由字典adict的值组成的列表[]
比如keys为{ 'a':0, 'b':1, 'c':2},adict为{ 'a':3, 'b':4, 'c':5}
将返回[3, 4, 5]
return map(adict.get,keys) #函数映射,把keys的键值逐个映射到adict.get函数,即用keys的键求adict的值,返回到一个遍历器。
执行list(map(adict.get,keys))得到[3,4,5] 顺序或有不同
4. python中的字典如何按值大小进行排序
在Python中,处理字典时,我们有时需要对字典中的元素进行排序。例如,假设我们有一个字典dict1 = {0 : 0.28 , 1 : 0.25, 2 : 0.45},并希望按照字典的值进行排序。目标是得到字典dict1 = {0 : 0.25 , 1 : 0.28, 2 : 0.45}。
首先,我们尝试使用Python内置的排序功能。一种做法是使用`sorted()`函数结合`lambda`函数来实现。`lambda`函数可以帮助我们定义一个排序规则,即按照值的大小进行升序排序。这将返回一个排序后的元组列表。例如:
python
sorted_dict = sorted(dict1.items(), key=lambda item: item[1])
然而,这个操作将返回一个元组列表`[(1, 0.25), (0, 0.28), (2, 0.45)]`,而我们需要的是一个字典。
幸运的是,我们可以将这个排序后的元组列表转换为字典。通过使用字典推导式,我们可以轻松实现这一目标:
python
sorted_dict = {k: v for k, v in sorted_dict}
执行上述代码后,`sorted_dict`将会是一个按值排序的字典,其结构为`{1: 0.25, 0: 0.28, 2: 0.45}`。
尽管我们得到了排序后的字典,但值得注意到的是,这个字典的键值对顺序与原始字典不同。若需要保持原始键的顺序,可以使用`dict`函数将排序后的元组列表转换为字典,从而得到我们期望的排序结果。
总结,通过使用`sorted()`函数结合`lambda`函数对字典进行排序,再使用字典推导式将排序后的元组列表转换为字典,我们可以实现字典按值大小排序的目标,同时保持原始键的顺序,达到最终目的。