1.前言

推导式,英文名字叫comprehensions,注意与comprehension(理解)只有s字母之差。推导式又可以叫解析式,推导式可以从一种数据序列构建新的数据序列的结构体。推导式分为,列表推导式,字典推导式,嵌套列表推导式,本节介绍列表推导式,其他后续介绍.

2.列表推导式概念

它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,是另一个新列表,原列表保持不变。在这个以if和for语句为上下文的表达式运行完成之后产生。

写法模式:[expr for value in collection if condition]

if过滤条件,取决于实际应用是否需要,可有可无

3.实例:

示例1:

#输出30以内被4整除的数,各自加0.5

list1=[i+0.5for i in range(30)if i%4==0]

print(list1)

# [0.5, 4.5, 8.5, 12.5, 16.5, 20.5, 24.5, 28.5]

对比for循环代码为:

list2=[]

for i in range(30):

if i%4==0:

list2.append(i+0.5)

print(list2)

# [0.5, 4.5, 8.5, 12.5, 16.5, 20.5, 24.5, 28.5]

示例2:

# 将列表中长度大于4的字母大写,长度小于或等于4的字母小写

name1= ['Bob','tom','alice','Jerry','Wendy','Smith','liuhu']

name2=[name.upper() for name in name1 if len(name)>4]

print(name2)

name3=[name.lower() for name in name1 if len(name)<=4]

print(name3)

name4=name2.extend(name3)

print(name4)

print(name2)

# ['ALICE', 'JERRY', 'WENDY', 'SMITH', 'LIUHU']

# ['bob', 'tom']

# None

# ['ALICE', 'JERRY', 'WENDY', 'SMITH', 'LIUHU', 'bob', 'tom']

注意:name4为空,写法需要更正

还有更简单的方法,在列表推导式中使用if else语句:

name5= ['Bob','tom','alice','Jerry','Wendy','Smith','liuhu']

name6=[name.upper()if len(name)>4 else name.lower() for name in name5]

print(name6)

# ['bob', 'tom', 'ALICE', 'JERRY', 'WENDY', 'SMITH', 'LIUHU']

示例3:

# 与zip结合

a = [ -6, -7, -8, -9, -10]

b = [1, 2, 3, 4, 5]

xy = [[x, y] for x, y in zip(a, b)]

print(xy)

# [[-6, 1], [-7, 2], [-8, 3], [-9, 4], [-10, 5]]

示例4:

# 支持多层for循环,将一个嵌套列表转换成一个一维列表。

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b = [j for i in a for j in i]

print(b)

# [1, 2, 3, 4, 5, 6, 7, 8, 9]

示例5:

m,n中矩阵元素的乘积玩法;

m = [[1,2,3],[4,5,6],[7,8,9]]

n = [[2,2,2],[3,3,3],[4,4,4]]

# 矩阵行与行相乘

hc=[m[row][col]*n[row][col] for row in range(3) for col in range(3)]

print(hc)

# [2, 4, 6, 12, 15, 18, 28, 32, 36]

# 矩阵相乘

jc=[[m[row][col]*n[row][col] for col in range(3)] for row in range(3)]

print(jc)

# [[2, 4, 6], [12, 15, 18], [28, 32, 36]]

# 矩阵列与列乘

lc=[[m[row][col]*n[row][col] for row in range(3)] for col in range(3)]

print(lc)

# [[2, 12, 28], [4, 15, 32], [6, 18, 36]]

python3列表推导式矩阵转置_python3进阶之推导式1之列表(list)推导式(comprehensions)...相关推荐

  1. c++矩阵转置_python3 单行代码实现矩阵相乘

    Python中有许多模块用来进行科学与数学的运算. 例如,numpy就是其中的一个,而且numpy中就有大量.好使的矩阵乘法的函数. 即便如此,我们还是可以探究一下如何用Python的自带函数,在一行 ...

  2. 列表推导式 python原理_Python进阶-列表推导式详解总结

    列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做 lst = ...

  3. python3中zip函数_用python实现矩阵转置,python3 中zip()函数

    前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...

  4. python顺序表转置_Python:二维列表下标互换方式(矩阵转置)

    Python:二维列表下标互换方式(矩阵转置) 发布时间:2020-08-20 04:13:38

  5. 使用JsonParser流式解析json,并使用DataFrame进行矩阵转置。

    需求:将一个结构化不太好的原始的大json文件,转为CSV文件,有{{}}嵌套也有[[ ]]嵌套. 思路: 1 .肯定不能使用原始的LIst Map- 2. 尽量减少对line 的遍历. 3. 可适当 ...

  6. python转置矩阵代码_python 矩阵转置

    用python怎么实现矩阵的转置 只能用循环自己写算法吗 自带函数有可以算的吗 或者网上的算法可以用的 python矩阵转置怎么做? 5.矩阵转置 给定:L=[[1,2,3],[4,5,6]] 用zi ...

  7. 在matlab表示特殊矩阵,MATLAB特殊矩阵以及矩阵转置

    特殊矩阵 通用特殊矩阵 zeros函数:产生全0矩阵,即零矩阵. ones函数:产生....1矩阵,即幺矩阵. eye函数:产生对角线为1的矩阵,当矩阵是方正时,得到单位矩阵. rand函数:产生(0 ...

  8. python中矩阵的转置_[转]Python中的矩阵转置

    Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...

  9. python3类的继承详解_python3 多重继承机制

    由于python中包含多重继承机制,那么子类在多重继承中,到底用的是哪一个超类的方法就是大家关心的问题,之前在查阅已有书籍无果后,只得去翻官方文档与博客,终于得解,于是在此总结归纳. 全称 方法解析顺 ...

最新文章

  1. 复旦的新衣再登Nature!穿在身上能为手机充电,可水洗可弯折,刀戳车撵都不坏...
  2. 《大话数据结构》读书笔记
  3. bmob php支付,基于Bmob在小程序端实现一键支付
  4. python sklearn.neural_network.MLPClassifier() 神经网络改变模型复杂度的四种方法
  5. [待解决]报错的脚本
  6. 护士计算机等级考试报名时间2015,湖南大学2015年9月全国计算机等级考试报名时间...
  7. 手机单选按钮 html5,@html剃刀单选按钮mvc5(@html razor radio buttons mvc5)
  8. 怎么判断自己适不适合读博士?
  9. java软件开发ea介绍_开发说明 — Eacloud 1.0 documentation
  10. 【视频】Vue作者分享:Vue 3.0 进展
  11. 表情识别(四)--多网络级联表情识别
  12. 拓端tecdat|R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
  13. 深度学习行人检测简介_深度学习简介
  14. 帆软教程:报表数据钻取
  15. Windows 下使用 Mingw32-make 来执行 Makefile示例
  16. JavaScript练习题
  17. 《富爸爸,穷爸爸》这本书有何价值?
  18. 剁手节致敬!听当年的老人讲述阿帕网(互联网前身)诞生的故事
  19. xxl-job集成钉钉群告警
  20. 求(2Y-4)²-4(Y-2)(3Y+7)≥0得解

热门文章

  1. Deprecated: Function ereg_replace() is deprecated
  2. HOWTO: 判断全角和半角
  3. Spring Boot系列教程八: Mybatis使用分页插件PageHelper
  4. Dubbo搭建监控中心
  5. oracle 全局id,基于SnowFlake 全局ID 生成器 go-id-worker
  6. 天线下倾角示意图_《天线和下倾角.ppt
  7. 3d文件与html结合,js和HTML5怎么结合?
  8. Java中怎样创建数据库_在java中怎样创建MySQL数据库列表给个例子 爱问知识人
  9. 算法学习之路|蒜头君的新游戏1
  10. android自学之旅——layout资源文件