python中有种独特的语法:推导式,可以将代码压缩到1行,但是不使用也不影响。

有三种:列表、字典、集合(注意没有元组推导式)

列表推导式

# 1、一行代码实现1—100之和(知识点:列表推导式)
print(sum([x for x in range(1, 101)]))
# 解释:
# 列表推导式语句用[]包围,[]中先执行for循环语句,将每次循环取得的值再执行for语句之前的表达式,然后将结果放入列表中,相当于如下语句
li = []
for x in range(1, 101):li.append(x)
print(li)
print(sum(li))
# 列表推导式还支持更复杂的语句,核心是用[]将生成列表的逻辑封装起来
# 求1-100之内能被4整除,但是不能被5整除的所有数
print([x for x in range(1, 101) if x % 4 == 0 and x % 5 != 0])
# 多重循环,先执行一次外层循环,再循环内层遍历所有元素
li = [a + b for a in '123' for b in 'abc']
# 输出
['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']# 更多用法
li2 = [k+':'+v for k, v in {'name': 'kobe', 'age': '41'}.items()]
# 输出
['age:41', 'name:kobe']# 问题:有两个列表a和b,找出在a中但不在b中的元素(a有b没有),在a和b中都存在的元素(ab都有),a和b中不同的元素(a有b没有,b有a没有)
a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7]
# 在a中但不在b中的元素(a有b没有)
li1 = [x for x in a if x not in b]
print(li1)
# 在a和b中都存在的元素(ab都有)
li2 = [x for x in a if x in b]
print(li2)
# a和b中不同的元素(a有b没有,b有a没有)
li3 = [x for x in a+b if x not in li2]
print(li3)

字典推导式

# 字典推导式(用花括号{}包围起来)
dict = {x: x*x for x in [1, 2, 3]}
# 输出
{1: 1, 2: 4, 3: 9}

集合推导式

# 集合推导式(也是用花括号包围,和字典推导式区别只是在for语句的前面表达式不一样,没有:)
s = {x for x in 'agjsgnjkjg' if x not in 'sgjkajhag'}
print(type(s))

元素推导式(没有)

# 元组推导式????(既然列表推导式用[],字典和集合推导式用{},那元组推导式当然用()了)
# 对不起么有元组推导式,圆括号在Python中被用作生成器的语法了
tup = (x for x in [1,2,3])
print(type(tup))
# 输出:<class 'generator'>,可以看到是一个生成器
# 如果非要按照上面的规律生成元组,需要显式的调用元组转换函数tuple()
tup = tuple((x for x in [1,2,3]))
print(tup)
print(type(tup))
# 输出:
# (1, 2, 3)
# <class 'tuple'>

转载于:https://www.cnblogs.com/gcgc/p/11589186.html

python:列表推导式相关推荐

  1. Python 列表推导式 - Python零基础入门教程

    目录 一.Python 列表推导式简介 二.Python 列表推导式语法 三.Python 列表推导式练习 1.Python 列表推导式案例一 2.Python 列表推导式案例二 3.Python 列 ...

  2. python 列表推导式csv_Python 列表推导式

    在本教程中,我们将学习使用 Python 列表推导. Python 列表推导式 列表推导式是一种基于现有列表创建列表的语法结构. 列表推导式为创建列表提供了一种简洁的方法. 常见的要求是创建新列表,其 ...

  3. 【技能树共建】Python 列表推导式

    Python 列表推导式是什么 列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式, 它在 Python 中用于 转换 和 过滤 数据. 其语法格 ...

  4. python列表推导式是什么

    列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表. 它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句.那个表达式可以是任意的, ...

  5. python列表推导式中使用if语句及他们的等价形式

    python列表推导式中使用if语句及他们的等价形式 在python的列表推导式中使用if语句有两种形式: # 方式1: 起过滤作用 [expr(x) for x in li if cond(x)] ...

  6. python 列表推导式

    自学python,总结一下,云储存 1,举个普通例子 # 列表推导式置于一对方括号之中[x**2 for x in range(10)] #计算range(10)中每个数的平方,推导出新列表 # 得到 ...

  7. python 列表推导式 - 列表字典取value

    d = [{'phone': '110'}, {'phone': '120'}] d2 = [x['phone'] for x in d] print(d2) 以下来自于参考 值得收藏!16段代码入门 ...

  8. python列表推导式实现从1加到100_python之生成器和列表推导式

    一.生成器函数 1.生成器:就是自己用python代码写的迭代器,生成器的本质就是迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现). 2.用以下两种方式构建一个生成器: ...

  9. python列表推导式_聊一聊:python的各种推导式(列表推导式、字典推导式、集合推导式)...

    作者:苍松 原文:https://www.cnblogs.com/tkqasn/p/5977653.html 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可 ...

最新文章

  1. 自己动手写一个能操作redis的客户端
  2. 图解TCP/IP(第5版)PDF
  3. Java编程思想 第十五章:泛型
  4. 台湾国立大学郭彦甫Matlab教程笔记(14)polynomial differentiation多项式微分
  5. Bone Collector
  6. P3804 【模板】后缀自动机 (SAM)
  7. 年增代码 12.9 亿行,每天完成需求近 4000 个,鹅厂程序员秘密大爆料!
  8. SQL系列(五)—— 排序(order by)
  9. 快应用开发教程【02】--项目配置教程
  10. maple的Linux安装步骤,[原创]CentOS6.0下安装Freeiris2/Asterisk全程指导教程
  11. 【数据库系统工程师】数据库系统工程师官方教程第3版和第4版的区别
  12. poi导出Excel,表格画斜线,并设置数据
  13. 前后端分离架构设计(权限模型)
  14. 【C++】atomic简介
  15. Google网络硬盘(GDrive):千呼万唤不出来
  16. 家用计算机中PCB板材质,主流的PCB板材料有哪些分类?
  17. 由注意力机制中scaled sqrt(dk)操作联想到期望与方差的本质推导
  18. 川土微CA-IS3082WX 隔离式RS-485/RS-422收发器简介
  19. Simulink基础【1】-弹簧-阻尼模型的常微分方程求解
  20. 概率论与数理统计:随机变量、分布律,分布函数,密度函数

热门文章

  1. Swimming Balls
  2. OO_BLOG3_规格化设计(JML学习)
  3. #1123-JSP隐含对象
  4. 【Linux高频命令专题(23)】tar
  5. python 列表与元组的操作简介
  6. 【语言处理与Python】2.5WordNet
  7. [css3]:nth-child与:nth-of-type的区别
  8. HP_UX常用指令列表(转,整理过,方便使用)
  9. 关于Oracle实时数据库的优化思路
  10. dll文件的c++制作dll文件的c++制作