前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Python]列表生成式

[Python]列表生成式

作者头像
祥知道
发布2020-03-10 17:02:09
6620
发布2020-03-10 17:02:09
举报
文章被收录于专栏:祥的专栏祥的专栏

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:https://cloud.tencent.com/developer/article/1596480


文章目录

代码语言:txt
复制
- @[toc]环境基础1.1.  基础语法格式1.2. 循环嵌套语法格式1.3. 循环+嵌套判断语法格式例子2.1. eg.基础语法格式2.2. eg.循环嵌套语法格式2.3. eg.循环+嵌套判断语法格式2.4. eg.筛选列表中的str变量,并使其变成小写参考文献

Python列表生成式

Python文档整理目录: https://blog.csdn.net/humanking7/article/details/80757533

0. 环境

  • Python 3.6

1. 基础

列表生成式 就是一个用来生成列表的 特定语法形式表达式 列表生成式List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

1.1. 基础语法格式

代码语言:javascript
复制
# 基础语法格式
[exp for iter_var in iterable]

解释:

  1. 迭代iterable中的每个元素;
  2. 每次迭代都先把结果赋值给iter_var,然后通过exp得到一个新的计算值;
  3. 最后把所有通过exp得到的计算值以一个新列表的形式返回。

等价于:

代码语言:javascript
复制
L = []
for iter_var in iterable:
    L.append(exp)

1.2. 循环嵌套语法格式

代码语言:javascript
复制
# 循环嵌套语法格式
[exp for iter_var_A in iterable_A for iter_var_B in iterable_B]

解释:

  • 每迭代 iterable_A 中的一个元素,就把 ierable_B 中的所有元素都迭代一遍

等价于:

代码语言:javascript
复制
L = []
for iter_var_A in iterable_A:
    for iter_var_B in iterable_B:
        L.append(exp)

1.3. 循环+嵌套判断语法格式

代码语言:javascript
复制
# 循环+嵌套判断语法格式
[exp2 for iter_var in iterable if exp1]

等价于:

代码语言:javascript
复制
L = []
for iter_var in iterable:
    if exp1:
        L.append(exp2)

2. 例子

2.1. eg.基础语法格式

代码语言:javascript
复制
In [18]: [x*x for x in range(1, 6)]
Out[18]: [1, 4, 9, 16, 25]

2.2. eg.循环嵌套语法格式

代码语言:javascript
复制
In [19]: [ m+n for m in 'ABC' for n in '123']
Out[19]: ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

2.3. eg.循环+嵌套判断语法格式

代码语言:javascript
复制
In [20]: [ x*x for x in range(1, 6) if x%2==0]
Out[20]: [4, 16]

In [21]: [ x*x for x in range(1, 6) if x%2==1]
Out[21]: [1, 9, 25]

2.4. eg.筛选列表中的str变量,并使其变成小写

代码语言:javascript
复制
In [22]: L1 = ['Hello', 'World', 18, 'Apple', None]

In [23]: L2 = [x.lower() for x in L1 if isinstance(x, str)]

In [24]: L2
Out[24]: ['hello', 'world', 'apple']

3. 参考文献

廖雪峰的Python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776


OK!

以上,Enjoy~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 0. 环境
  • 1. 基础
    • 1.1. 基础语法格式
      • 1.2. 循环嵌套语法格式
        • 1.3. 循环+嵌套判断语法格式
        • 2. 例子
          • 2.1. eg.基础语法格式
            • 2.2. eg.循环嵌套语法格式
              • 2.3. eg.循环+嵌套判断语法格式
                • 2.4. eg.筛选列表中的str变量,并使其变成小写
                • 3. 参考文献
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档