Google Python Class — Sorting
admin
2023-07-31 00:47:08
0

学习Python和我的工作关系并不大,但这不重要,因为喜欢所以坚持。
打篮球他们因为不想和我一伙而争论,完全不顾我的感受,但这不重要,因为喜欢所以坚持。
写博客很费时间,有时候想写又没什么可写很痛苦,但这不重要,因为喜欢所以坚持。
写博客排版很费时,终于碰到segmentfault,又产生了写写写的欲望。【顺便赞一下】

Google Python Class — Sorting

继续前面两篇,我个人觉得这篇是干货最多的,至少我从中学到了不少东西。废话少说,开始吧!

  • 对一个列表排序最简单的方法就是使用sorted(list)函数。
    前面我们说过list.sort(),这是列表的一个方法。它直接作用于列表,并且没有返回值。有时候我们不想改变列表本身,只是希望返回一个新的列表,那么就需要用到sorted(list)函数。

    123 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[升序排列]

    123 strs = [\’aa\’, \’BB\’, \’zz\’, \’CC\’]print sorted(strs)  ## [\’BB\’, \’CC\’, \’aa\’, \’zz\’] (case sensitive)print sorted(strs, reverse=True)   ## =True,改为降序排列

  • sorted(list)可以使用可选的key参数指定一个函数.该函数会以每个元素为参数。
    排序时,列表中的元素会通过函数进行处理,并按照返回值进行排序。

    12345678910111213141516171819 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等等。

    12345 tuple = (1, 2, \’hi\’)print len(tuple)  ## 可以返回长度print tuple[2]    ## 通过[]访问元素tuple[2] = \’bye\’  ## 元组一旦创建,不能够对元素进行修改tuple = (1, 2, \’bye\’)  ## 可以重新创建

列表推导式【List Comprehensions】

  • 列表推导式是一种简洁的方式,可以将表达式扩展到整个列表。
    语法: [ expr for var in list ]

    12345   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条件进行过滤

    123456 nums = [2,8,1,6]small = [n for n in nums if n <= 2 ] ## [2,1] ## Select fruits containing \’a\’, change to upper casefruits = [\’apple\’, \’cherry\’, \’bannana\’, \’lemon\’]afruits = [ s.upper() for s in fruits if \’a\’ in s ]


相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...