首页 > 编程语言 >python嵌套的列表推导式

python嵌套的列表推导式

时间:2024-01-08 23:00:39浏览次数:41  
标签:11 transposed 12 matrix 推导 ... python 嵌套 row

列表推导式中的初始表达式可以是任何表达式,甚至可以是另一个列表推导式。

下面这个 3x4 矩阵,由 3 个长度为 4 的列表组成:

>>> matrix = [
...     [1, 2, 3, 4],
...     [5, 6, 7, 8],
...     [9, 10, 11, 12],
... ]

下面的列表推导式可以转置行列:

>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
>>> transposed = []
>>> for i in range(4):
...     transposed.append([row[i] for row in matrix])
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

反过来说,也等价于:

>>> transposed = []
>>> for i in range(4):
...     # the following 3 lines implement the nested listcomp
...     transposed_row = []
...     for row in matrix:
...         transposed_row.append(row[i])
...     transposed.append(transposed_row)
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

实际应用中,最好用内置函数替代复杂的流程语句。此时,zip()函数更好用:

>>> list(zip(*matrix))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

标签:11,transposed,12,matrix,推导,...,python,嵌套,row
From: https://blog.51cto.com/u_12891160/9152074

相关文章

  • python如何创建一个web项目
    创建一个web项目需要多个步骤,包括选择一个框架,设计数据库模式,设置服务器等。在Python中,最常用的web框架是Django和Flask。下面我将给出一个简单的使用Flask创建web项目的示例。首先,确保你已经安装了Python和pip。然后,你可以使用pip安装Flask:bashpipinstallFlaskpipinstallFlas......
  • 完整的Python框架
    下面是一个更完整的Pythonweb框架示例,使用Flask和SQLite数据库:pythonfromflaskimportFlask,render_template,request,redirect,url_forfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']='sqlite:////tmp/test......
  • python 解决Fatal error in launcher:错误问题
    python解决Fatalerrorinlauncher:错误问题━━━━━━━━━━━━━━━━━━━━━━━━━只要终端用到pip的东西,都在前面加python-m,比如python-mpiplist好了,完美解决!补充知识:python安装exe打包库命令pipinstallpyinstaller报错,使用pip国内镜像解决方法pipi......
  • 在postgresql中用SQL封装python
    “ 对于一个数据库来说,SQL大家肯定最熟悉不过了。但是作为数据库开发者,我认为数据库不应该只是支持SQL语言。应该支持更多编程语言。比如python、java、c++等更多编程语言,让数据库在多种语言之间的管理、功能上实现最大便捷,这才是未来数据库最大的发展趋势。也是国产数据库在实现......
  • Python 安装教程总结
    1、使用官方Python安装程序参考文档:Python在windows上安装配置方法(Python2和Python3)具体操作如下,Windows下安装Python,我们可以参考这个文档教程来安装,下载Python安装程序,选择与您操作系统版本相对应的安装程序。对于Windows用户,通常建议下载Windowsx86-64execu......
  • python跳出多层for循环的方法
    在业务逻辑中有时候会遇到两层for循环的情况,触发某些条件时,需要直接退出两层for循环而python官方是没有goto语句的那么我们可以这样实现第一种定义变量flag,根据flag的值做退出flag=Trueforiinrange(10):forjinrange(10):ifi+j>15:print(i,j......
  • Mac安装Python3.12开发环境
    官网https://www.python.org/downloads/安装pythonpython-3.12.1-macos11.pkg下载后,安装一直下一步即可验证是否安装成功,执行python3命令和pip3命令配置环境变量获取python3安装位置并配置在.bash_profile#查看python路径whichpython3#修改配置文件.bash_profileopen-e.bash......
  • 如何写一个python脚本读取控制台类型的程序上面的文本
     在Python中,你可以使用`input()`函数来读取控制台输入的文本。这个函数会等待用户在控制台输入文本,并将其作为字符串返回给你的程序。下面是一个示例,演示了如何编写一个Python脚本来读取控制台输入的文本:```python#读取控制台输入的文本text=input("请输入文本:")print("你......
  • python如何通过cmd创建虚拟环境
    Python是一种十分流行的编程语言,它具有易于学习、开发效率高、强大的库支持等优点。在Python开发过程中,虚拟环境是一种非常重要的概念。通过虚拟环境,我们可以在同一台机器上同时运行多个Python项目,并且这些项目之间互不干扰。本文将介绍如何使用cmd命令行工具创建Python虚......
  • 如何在 Python 中安装 json 模块
    Python是一种功能强大的编程语言,自带了许多标准库,其中json模块是用于处理JSON数据的模块。在Python中安装json模块非常简单,因为它是标准库的一部分,不需要额外的安装步骤。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,并且易于机器解析和生成。Python的......