zip矩阵转至
list01=[1,2,3,4]
list02=["a","b","c","d"] for itme in zip(list01,list02):
print(list(itme))
结果:
[1, 'a']
[2, 'b']
[3, 'c']
[4, 'd']
zip最简单的用法“列对接”我们可以看到zip可以将列与列组合在一起
我在学习一些如2048等项目的时候会用到矩阵转至思想的,但没有zip的时候是很痛苦的,当有了zip的时候我们就可以这样做:
list01=[
[1,2,3,4],
[5,6,7,8],
[9,8,7,4],
[1,5,8,7]
]
list02=[] for itme in zip(list01[0],list01[1],list01[2],list01[3]):
list02.append(list(itme))
print(list02)
结果:
[[1, 5, 9, 1], [2, 6, 8, 5], [3, 7, 7, 8], [4, 8, 4, 7]]
这样就将之前的13行矩阵转至代码简化为3行:但这样写也是不够灵活,当我们增加一行数据时代码有又需要改动:
list01=[
[1,2,3,4],
[5,6,7,8],
[9,8,7,4],
[1,5,8,7],
[7,4,5,6]
]
list02=[] for itme in zip(list01[0],list01[1],list01[2],list01[3],list01[4]):
list02.append(list(itme))
print(list02)
有的同学会想到可变量参数化,这样也是不可取的,这样做代码有将变得臃肿,我们不如用拆包和装包的思想:
list01=[
[1,2,3,4],
[5,6,7,8],
[9,8,7,4],
[1,5,8,7],
[7,4,5,6]
]
list02=[] for itme in zip(*list01):
list02.append(list(itme))
print(list02)
当到这一步的时候我们就可以用Python的特色-----列表推导式
list01=[
[1,2,3,4],
[5,6,7,8],
[9,8,7,4],
[1,5,8,7]
]
list02=[list(itme) for itme in zip(*list01)]
print(list02)
结果:
[[1, 5, 9, 1], [2, 6, 8, 5], [3, 7, 7, 8], [4, 8, 4, 7]]
zip矩阵转至的更多相关文章
- 用python实现矩阵转置,python3 中zip()函数
前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...
- python built-in zip()
zip([iterable, ...]) 返回一个list ,list里的元素是元组tuple.第i个元组内的元素是所有iteralbe中第i个元素组成的. 当所有的iterable拥有同样的长度的时 ...
- python(29)强大的zip函数
zip函数:它是python的内建函数,(与序列有关的内建函数有:sorted().reversed().enumerate().zip()),其中sorted()和zip()返回一个序列(列表)对象 ...
- OpenGL矩阵类(C++)
概述 创建&初始化 存取器 矩阵运算 变换函数 实例:模型视图矩阵 实例:投影矩阵 概述 OpenGL固定功能管线提供4个不同类型的矩阵(GL_MODELVIEW.GL_PROJECTION. ...
- [转]Python零碎知识(2):强大的zip
一.代码引导 首先看这一段代码: 1 >>> name=('jack','beginman','sony','pcky') 2 >>> age=(2001,2003 ...
- leetcode-Spiral Matrix II 螺旋矩阵2之python大法好,四行就搞定,你敢信?
Spiral Matrix II 螺旋矩阵 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...
- 矩阵的QR分解(三种方法)Python实现
1.Gram-Schmidt正交化 假设原来的矩阵为[a,b],a,b为线性无关的二维向量,下面我们通过Gram-Schmidt正交化使得矩阵A为标准正交矩阵: 假设正交化后的矩阵为Q=[A,B],我 ...
- 基于矩阵模式的 Web 软件测试手段(转)
http://www.ibm.com/developerworks/cn/web/1410_dujing_matrixfortest/ 在 Web 测试中,我们经常针对某个测试点进行多种场景测试,或者 ...
- python中的 zip函数详解
python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...
随机推荐
- JavaScript中foreach、map、filter、find、every、some的用法
foreach:只是循环数组中的每一项,没有返回值 如: var arr = [2,3,3,4,5,6]; arr.foreach(function(item,index,array){ dosom ...
- ClickHouse源码笔记1:聚合函数的实现
由于工作的需求,后续笔者工作需要和开源的OLAP数据库ClickHouse打交道.ClickHouse是Yandex在2016年6月15日开源了一个分析型数据库,以强悍的单机处理能力被称道. 笔者在实 ...
- MVVM 小雏形 knockout
前言 knockout学过的当工具脚本用,就像jquery一样使用,学习成本15分钟,没学过的可学可不学. knockout 是上古神器,话说在远古开天辟地,前端到处是飞禽走兽,一片混乱. 这时候人类 ...
- Rocket - tilelink - BankBinder
https://mp.weixin.qq.com/s/oZCYBdy5glxJQmYKVWvpvA 简单介绍BankBinder的实现. 1. 基本介绍 A BankBinder ...
- 一文说通Dotnet Core的中间件
前几天,公众号后台有朋友在问Core的中间件,所以专门抽时间整理了这样一篇文章. 一.前言 中间件(Middleware)最初是一个机械上的概念,说的是两个不同的运动结构中间的连接件.后来这个概念 ...
- (Java实现) 车厢重组
[问题描述] 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排 ...
- Java实现 LeetCode 714 买卖股票的最佳时机含手续费(动态规划 || 迭代法)
714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每次交 ...
- Java实现 LeetCode 583 两个字符串的删除操作(求最长公共子序列问题)
583. 两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例: 输入: " ...
- Java实现 LeetCode 260 只出现一次的数字 III(三)
260. 只出现一次的数字 III 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次. 找出只出现一次的那两个元素. 示例 : 输入: [1,2,1,3,2,5] 输出 ...
- Java实现 LeetCode 12 整数转罗马数字
12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 ...