Google Python Class --- Sorting,pythonsorting,打篮球他们因为不想和我一
Google Python Class --- Sorting,pythonsorting,打篮球他们因为不想和我一
学习Python和我的工作关系并不大,但这不重要,因为喜欢所以坚持。
打篮球他们因为不想和我一伙而争论,完全不顾我的感受,但这不重要,因为喜欢所以坚持。
写博客很费时间,有时候想写又没什么可写很痛苦,但这不重要,因为喜欢所以坚持。
写博客排版很费时,终于碰到segmentfault,又产生了写写写的欲望。【顺便赞一下】
Google Python Class — Sorting
继续前面两篇,我个人觉得这篇是干货最多的,至少我从中学到了不少东西。废话少说,开始吧!
- 对一个列表排序最简单的方法就是使用sorted(list)函数。
前面我们说过list.sort(),这是列表的一个方法。它直接作用于列表,并且没有返回值。有时候我们不想改变列表本身,只是希望返回一个新的列表,那么就需要用到sorted(list)函数。
a = [5, 1, 4, 3] print sorted(a) ## [1, 3, 4, 5] print a ## [5, 1, 4, 3]
- google 课程中强烈推荐使用函数sorted(list),而不是list的方法list.sort().
sorted(list)可以使用参数,比如reverse=Ture/false,默认false[升序排列]
strs = ['aa', 'BB', 'zz', 'CC'] print sorted(strs) ## ['BB', 'CC', 'aa', 'zz'] (case sensitive) print sorted(strs, reverse=True) ## =True,改为降序排列
- sorted(list)可以使用可选的key参数指定一个函数.该函数会以每个元素为参数。
排序时,列表中的元素会通过函数进行处理,并按照返回值进行排序。
strs = ['ccc', 'aaaa', 'd', 'bb'] #会按照元素的长度进行升序排列 print sorted(strs, key=len) ## ['d', 'bb', 'ccc', 'aaaa'] #按照元素的小写进行排序 strs = ['BB','aa','CC','zz'] print sorted(strs, key=str.lower) ## ['aa', 'BB', 'CC', 'zz'] #key后面可以是自定义函数 def MyFn(s): return s[-1] ## Now pass key=MyFn to sorted() to sort by the last letter: print sorted(strs, key=MyFn) ## ['wa', 'zb', 'xc', 'yd'] ## lambda 表达式 strs = [1,2,-5,-435] #按照返回值排序 print sorted(strs,key=lambda str:str*(-1)) #[2, 1, -5, -435]
元组【Tuples】
- 元组是固定尺寸的元素的集合。在Python扮演一种”结构体”的角色
- 元组与列表类似,可以使用len()返回长度,使用[]访问元素,使用for,in等等。
tuple = (1, 2, 'hi') print len(tuple) ## 可以返回长度 print tuple[2] ## 通过[]访问元素 tuple[2] = 'bye' ## 元组一旦创建,不能够对元素进行修改 tuple = (1, 2, 'bye') ## 可以重新创建
列表推导式【List Comprehensions】
- 列表推导式是一种简洁的方式,可以将表达式扩展到整个列表。
语法: [ expr for var in list ]
nums = [1, 2, 3, 4] squares = [ n * n for n in nums ] ## [1, 4, 9, 16] #创建一个全部都为0的二维数组 matrix = [[0 for col in range(ncols)] for row in range(nrows)]
- 可以在[ expr for va in list ]的右边增加if条件进行过滤
Pythonnums = [2,8,1,6] small = [n for n in nums if n <= 2 ] ## [2,1] ## Select fruits containing 'a', change to upper case fruits = ['apple', 'cherry', 'bannana', 'lemon'] afruits = [ s.upper() for s in fruits if 'a' in s ]
相关内容
- Python源码阅读——list,python源码list,未经作者许可,禁
- python里的列表list使用范例代码,python范例,#list#新建列
- python列表操作extend和append的区别演示代码,pythonextend
- python list使用技巧总结,pythonlist使用技巧,判断一个 l
- Python统计列表中元素出现的次数,python统计列表元素
- python检查list是否为空的方法,python检查list,python有两种
- Python list使用示例,pythonlist示例,#!/usr/bin/p
- 从python list中删除元素,pythonlist,python的list非
- python中使用列表代码演示,python列表代码演示,#!/usr/b
- python 列表操作:插入元素到列表,python元素,li = ['a',
评论关闭