字典的排序
先来演示字典的排序函数sort()的使用:
代码如下 | 复制代码 |
dict = {"a":"apple","b":"banana","g":"grape","c":"oreage"} print dict |
#按照key进行排序。items可以用于字典的遍历,返回(key,value)的序列,lampda用于创建匿名函数,并返回计算结果,d[0]表示key
代码如下 | 复制代码 |
print sorted(dict.items(), key=lampda d:d[0]) #按照value进行排序。同样d[1]表示value print sorted(dict.items(), key=lampda d:d[1]) |
例子
代码如下 | 复制代码 |
dict = [ {'id':'4','name':'b'}, {'id':'6','name':'c'}, {'id':'3','name':'a'}, {'id':'1','name':'g'}, {'id':'8','name':'f'} ] #dict.sort(lambda x,y: cmp(x['id'], y['id'])) dict = sorted(dict, key=lambda x:x['id']) print dict |
这种结构有很多用处。
月小升在计算一个字符串长度的时候,发现这个办法非常有效。
条件:有一个字符串数组
代码如下 | 复制代码 |
a = ['adsfasdfsaf','asdfsadfsadfsadf','aaa'.....] |
需要找出最长的三个字符串
办法就是
代码如下 | 复制代码 |
dict = {} dict.setdefault(“word”,adsfasdfsaf) dict.setdefault(“len”,12) arr = [] arr.append(dict) |
这样就按字符长度排序了。下面整理了一些排序例子
对字符串列表进行排序
代码如下 | 复制代码 |
list_str = ['blue','allen','sophia','keen'] print list_str list_str.sort() print list_str #执行结果: ['blue', 'allen', 'sophia', 'keen'] ['allen', 'blue', 'keen', 'sophia'] |
对整型数进行排序
代码如下 | 复制代码 |
list_int = [34,23,2,2333,45] print list_int list_int.sort() print list_int #执行结果: [34, 23, 2, 2333, 45] [2, 23, 34, 45, 2333] 对字典数据进行排序 |
代码如下 | 复制代码 |
dict_str = {'blue':'5555@sina.com', 'allen':'222@163.com', 'sophia':'4444@gmail.com', 'ceen':'blue@263.net'} print dict_str # 按照key进行排序 print sorted(dict_str.items(), key=lambda d: d[0]) # 按照value进行排序 print sorted(dict_str.items(), key=lambda d: d[1]) #执行结果: {'blue': '5555@sina.com', 'allen': '222@163.com', 'sophia': '4444@gmail.com', 'ceen': 'blue@263.net'} [('allen', '222@163.com'), ('blue', '5555@sina.com'), ('ceen', 'blue@263.net'),('sophia', '4444@gmail.com')] [('allen', '222@163.com'), ('sophia', '4444@gmail.com'), ('blue', '5555@sina.com'), ('ceen', 'blue@263.net')] |
时间: 2024-09-26 09:03:36