python笔记21-列表生成式

前言

python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。
对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。

range()

1.一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

# coding:utf-8 # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = range(1, 11) print(b)  # 结果 range(1, 11) print(type(b)) print(list(b))    # 转list

2.python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下

列表生成式

1.如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11, 22, 33 … 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了

# 对列表数平方 b = range(1, 11) c = [] for i in b:    c.append(i*i) print(c) # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.接下来看看用列表生成式如何去实现

# 对列表数平方 b = range(1, 11) c = [x*x for x in b] print(c) # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表

带if判断

1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

c = [1, 3, -3, 4, -2, 8, -7, 6] d = [] for i in c:    if i > 0:        d.append(i)  # 添加到列表d print(d) # 结果:[1, 3, 4, 8, 6]

2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!

# 提取大于0的数 c = [1, 3, -3, 4, -2, 8, -7, 6] d = [x for x in c if x > 0] print(d) # 运行结果[1, 3, 4, 8, 6]

多个参数

1.前面列表生成式都只传一个参数x,如果有两个列表如何去运算呢?
a = [1, 2, 3, 4, 5]
b = [“a”, “b”, “c”, “d”, “e”]
如何得出c = [“a1”, “b2”, “c3”, “d4”, “e5”]

# coding:utf-8 a = [1, 2, 3, 4, 5] b = ["a", "b", "c", "d", "e"] # 多个参数列表生成式 c = [str(x)+str(y) for x, y in zip(b, a)] print(c) # 结果:['a1', 'b2', 'c3', 'd4', 'e5']

2.列表生成式的语法是非常优雅的,学会了可以少写很多代码。理解起来也并不难,多联系几次就能熟练掌握了。

《python自动化测试全栈》课程-(7/8/9)3个月

(0)

相关推荐

  • Python在方括号中使用for循环,类似[0foriinrange(10)],叫列表解析...

    作者博文地址:https://www.cnblogs.com/liu-shuai/ 列表解析 根据已有列表,高效创建新列表的方式. 列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表, ...

  • 日常代码笔记,python的推导式&性能评估

    写代码跟写作类似,需要不断地练习,不断地阅读,获得灵感,然后反复修改(重构).写代码有代码补全工具,然后我们还是需要不断地练习.实验自己的新想法. 之前对python的推导式没有仔细去了解,今天抽空练 ...

  • python怎么判断三个数的大小

    前言 大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语法知识后,又会有不同的实现方式,比如这道练习题依次接收用户 ...

  • 完整版Python笔记|超级有用

    完整版Python笔记|超级有用

  • https://www.jianshu.com/p/ecc49b47ef23jt叔叔经方本草--笔记21(感冒入三阴脏) 不见经传Maxwell

    太阴病系列 太阴--足太阴脾经--消化能力会毁掉--拉肚子.吐,脉沉缓,或沉弱软. 太阴脾经的标准汤是理中汤. 拉肚子系列方子 *脾虚不能运化--水泻.单纯的寒--理中汤(太阴病) (如果怕力道不够用 ...

  • 【python笔记】python java 语法,对比学习

    【python笔记】python java 语法,对比学习

  • 胡希恕伤寒论学习笔记——21

    21.太阳病,下之后,脉促胸满者,桂枝去芍药汤主之. 桂枝去芍药汤方 桂枝三两 甘草二两 生姜三两(切) 大枣十二枚(掰) 上四味,以水七升,煮取三升,去滓,温服一升.本云桂枝汤,今去芍药,将息如前法 ...

  • python笔记2-冒泡排序

    前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一批英雄好汉,本篇就详细讲解如何用python进行冒泡排序. 一.基本原理 1.概念: 冒泡排序(Bubble Sort),是一种 ...

  • python笔记3-发送邮件(smtplib)

    前言 本篇总结了QQ邮箱和163邮箱发送邮件,邮件包含html中文和附件,可以发给多个收件人,专治各种不行,总之看完这篇麻麻再也不用担心我的邮件收不到了. 以下代码兼容python2和python3, ...

  • python笔记4-遍历文件夹目录os.walk()

    前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 一.walk功能简介 1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 2.walk( ...

  • python笔记5-python2写csv文件中文乱码问题

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  • python笔记6-%u60A0和\u60a0类似unicode解码

    前言 有时候从接口的返回值里面获取到的是类似"%u4E0A%u6D77%u60A0%u60A0"这种格式的编码,不是python里面的unicode编码. python里面的uni ...