python中列表排序,字典排序,列表中的字典排序

#-*- encoding=utf-8 -*-  

import operator
#按字典值排序(默认为升序)
x = {1:2, 3:4, 4:3, 2:1, 0:0}
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))
print sorted_x
#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
#如果要降序排序,可以指定reverse=True
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), reverse=True)
print sorted_x
#[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]
#或者直接使用list的reverse方法将sorted_x顺序反转
#sorted_x.reverse()  

#取代方法是,用lambda表达式
sorted_x = sorted(x.iteritems(), key=lambda x : x[1])
print sorted_x
#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
sorted_x = sorted(x.iteritems(), key=lambda x : x[1], reverse=True)
print sorted_x
#[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]  

#包含字典dict的列表list的排序方法与dict的排序类似,如下:
x = [{‘name‘:‘Homer‘, ‘age‘:39}, {‘name‘:‘Bart‘, ‘age‘:10}]
sorted_x = sorted(x, key=operator.itemgetter(‘name‘))
print sorted_x
#[{‘age‘: 10, ‘name‘: ‘Bart‘}, {‘age‘: 39, ‘name‘: ‘Homer‘}]
sorted_x = sorted(x, key=operator.itemgetter(‘name‘), reverse=True)
print sorted_x
#[{‘age‘: 39, ‘name‘: ‘Homer‘}, {‘age‘: 10, ‘name‘: ‘Bart‘}]
sorted_x = sorted(x, key=lambda x : x[‘name‘])
print sorted_x
#[{‘age‘: 10, ‘name‘: ‘Bart‘}, {‘age‘: 39, ‘name‘: ‘Homer‘}]
sorted_x = sorted(x, key=lambda x : x[‘name‘], reverse=True)
print sorted_x
#[{‘age‘: 39, ‘name‘: ‘Homer‘}, {‘age‘: 10, ‘name‘: ‘Bart‘}] 

原文地址:https://www.cnblogs.com/onemorepoint/p/9114153.html

时间: 2024-08-14 10:37:21

python中列表排序,字典排序,列表中的字典排序的相关文章

Python排序,针对列表,字典

Python的内部容器,大概分为:tuple,set,list,dict,就排序来说,对列表和字典的排序需求较多,tuple主要作为不可变容器,set用来去重复,下面把list和dict常见排序方法总结一下: 一.列表 1. list排序很简单,主要看list的元素组成,如果元素是由单值组成,比如下面的方法: >>> a = [1,2,5,3,4] >>> a.sort() >>> print a [1, 2, 3, 4, 5] list本身自带sor

[python] 字典和列表中的pop()函数

在字典和列表中,pop()函数都是删除特定元素,并将删除的元素返回给指定的变量或丢弃 一.字典元素删除 1.1 clear() 语法:dict.clear() 1 x = {'a':1, 'b':2, 'c':3} 2 m= x.clear() 3 print(x,m) 4 #输出 5 {} None 说明:删除所有的元素 1.2 pop() 语法:dict.pop(key,[value]) 说明:删除指定键及对应的值,如果在字典中不存在键及value,则返回pop()中指定的key对应的val

Python中对复杂数据结构排序(类似C中结构体数据结构)

Python中排序主要有两个函数:sorted和列表成员函数sort,两者除了调用方式有些区别外,最显著的区别是sorted会新建一个排序好的列表并返回,而sort是修改原列表并排好序.sorted的原型是: sorted(iterable, cmp=None, key=None, reverse=False) sort的原型是: list.sort(cmp=None, key=None, reverse=False) 其中cmp和key都是函数引用,即可以传入函数名.这两个函数都是对list里

2.1 如何在列表,字典,集合中根据条件帅选数据

#!/usr/bin/env python # -*- coding:utf-8 -*- #2.1 如何在列表,字典,集合中根据天剑筛选数据 # 帅选列表中符合条件的项 data = [1,5,-3,-2,6,8,0,9] res = [] for x in data: if x >=0: res.append(x) # print(res) #2 from random import randint data = [randint(-10,10) for _ in xrange(10)] m

python 中str字符串 和list列表基本操作总结

s = '#afsfdf222#'print(s.capitalize()) # 首字母大写其他字母小写print(s.center(20, '%')) # 居中并在空白处添加指定字符print(s.count('f')) # 统计f元素在字符串s中出现的次数print(s.endswith('f', 1, 8)) # 判断以xxx结束print(s.find('f', 2, 5)) # 找到第一个,并返回其索引,找不到返回-1print(s.index('f', 2, 5)) # 找到第一个,

***列表和字典在底层中 谁更快***

字典生成慢,查找快.列表生成快,查找慢.如果是数据多,经常需要查询,务必使用字典. 请看?? 思路: 生成一个很大的文本文件 分别用列表和字典来存储数据,然后读取并搜索数据 考察列表和字典做为数据结构的时候,存储的时间,搜索和访问的时间 计算两种方案的消耗时间 1.创建百万字符文件 我们需要一个较大的文件,来证明我们的猜想!干脆直接生成一个有百万行的字符串乱码文件. 1).产生一串随机字符: 取一些随机的字符,包括数字,字符,标点和符号等等,一共95个随机字符 2).把字符序列,进行随机化分布

Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序

列表复制 浅拷贝:简单类型元素全复制,引用类型元素只复制引用 L1 = [3,2,1,[4,5,6],8,'abc'] L1 [3, 2, 1, [4, 5, 6], 8, 'abc'] L2 = L1.copy() L2 [3, 2, 1, [4, 5, 6], 8, 'abc'] L1[3][1] = 10 #修改L1中的元素L2也随之变化 L1 [3, 2, 1, [4, 10, 6], 8, 'abc'] L2 [3, 2, 1, [4, 10, 6], 8, 'abc'] 深拷贝:co

python初级(302) 8 列表(选择排序练习二)

一.复习: 条件循环:while i = 3 while i > 0: print(i) i –= 1 arr = [2, 3, 5, 7, 9]while len(arr) > 0:    num = arr[0]    arr.remove(num)    print(arr) 选择排序: [3, 10, 2, 7, 16] 1.找到最小值get_min() def get_min(arr): num = arr[0] for i in range(1, len(arr)): if arr

Python List extend()方法-用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

描述 extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表). 语法 extend()方法语法: list.extend(seq) 参数 seq -- 元素列表. 返回值 该方法没有返回值,但会在已存在的列表中添加新的列表内容. 实例 以下实例展示了 extend()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 123]; bList = [2009, 'manni']; aLi

Python学习-35.Python中的List Comprehensions(列表解释|列表生成式)

在某些情况下,我们需要对列表进行某些操作,例如对列表中的每一个元素都乘以2,这样一般来说就是遍历每个元素在乘以2.那么写下来就得两行了.而且这会修改原来的列表,如果要求不能修改原来的列表,又得多一行了. 1 mylist = [1,3,5,7] 2 copylist = [] 3 for i in mylist: 4 copylist.append(i * 2) 5 print(copylist) 一眼看上去就是臃肿二字. Python提供了更加简便的写法: 1 mylist = [1,3,5,