文档章节

Python的点滴笔记之:推导式

fzyz_sb
 fzyz_sb
发布于 2015/02/24 15:33
字数 282
阅读 57
收藏 0
点赞 0
评论 0

1. 推导式通常可转换为for循环

    简单的for循环通常可以使用推导式来替换:

>>> [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
    它实际上等价于:
>>> combs = []
>>> for x in [1, 2, 3]:
	for y in [3, 1, 4]:
		if x != y:
			combs.append((x, y))

			
>>> combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

2. 推导式往往可完成复杂的for循环表示(不推荐)

    以下代码将逆转一个矩阵:

>>> 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):
	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函数也可以达到同样的效果:

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



© 著作权归作者所有

共有 人打赏支持
fzyz_sb
粉丝 404
博文 209
码字总数 447144
作品 0
武汉
程序员
Python--(异常与日志 随机数与模块 推导)

异常与日志 随机数与模块 推导 一、自定义异常 (通过自定义来编辑报错提示信息,代码报错以后会在输出框打印出来) 例: 四、模块 代码格式import sys(必须先引入) print(sys.path)路径。打印后...

xjtuhit ⋅ 05/28 ⋅ 0

资源|用Python和NumPy学习《深度学习》中的线性代数基础

本文系巴黎高等师范学院在读博士 Hadrien Jean 的一篇基础学习博客,其目的是帮助初学者/高级初学者基于深度学习和机器学习来掌握线性代数的概念。掌握这些技能可以提高你理解和应用各种数据...

Python雁横 ⋅ 05/25 ⋅ 0

python 下矩阵倒置的实现

Python下矩阵倒置,可以用双重循环,或者是zip实现。 循环实现: 嵌套的列表推导式 matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] matrix_t = [[row[col] for row in matrix] fo...

huangsheng2 ⋅ 05/27 ⋅ 0

资源 | 用Python和NumPy学习《深度学习》中的线性代数基础

  选自KDnuggets   作者:Hadrien Jean   机器之心整理   参与:刘晓坤      本文系巴黎高等师范学院在读博士 Hadrien Jean 的一篇基础学习博客,其目的是帮助初学者/高级初学者...

机器之心 ⋅ 05/14 ⋅ 0

程序员必备,快速学习 Python 的全套14张思维导图(附高清版下载)

后台回复关键词 思维导图 可获取本文中的高清思维导图(PDF版) ML & AI∣一个有用的公众号 长按,识别二维码,加关注 获取更多精彩文章

micf435p6d221ssdld2 ⋅ 05/23 ⋅ 0

王老板Python面试(10):17道python笔试面试真题

1、一行代码实现1--100之和 利用sum()函数求和 2、如何在一个函数内部修改全局变量 利用global 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统相关联的函数 sys: 通常用于命...

程序员八阿哥 ⋅ 05/22 ⋅ 0

python2.x和python3.x的区别

Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python3.0在设计的时候没有考虑向下相容。许多针对早期Python版本...

leejia1989 ⋅ 05/30 ⋅ 0

Python 迭代字典时是否应该使用 keys()

Python2 的话,应该。 因为可迭代对象如果在迭代过程中长度发生了变化,就会引发 Runtime Error ,所以在 这样的语句中,是不可以使用 或 方法的: 除非明确知道这次操作中不会增删被迭代对象...

lionets ⋅ 2014/12/28 ⋅ 0

实验楼机器学习挑战赛-------最小二乘法 Python 实现

介绍 目标 根据上面的最小二乘法代数推导过程,使用 Python 实现样本 x, y 的最小二乘法求解的函数。

turing365 ⋅ 05/28 ⋅ 0

Python的22个编程技巧,简化 if 语句、开启文件分享

小编给大家推荐一个学习氛围超好的地方,python交流企鹅裙:474534951!适合在校大学生,小白,想转行,想通过这个找工作的加入 。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直...

诸葛玥 ⋅ 04/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud 微服务 (六) 服务通信 RestTemplate

壹 通信的方式主要有两种,Http 和 RPC SpringCloud使用的是Http方式通信, Dubbo的通信方式是RPC 记录学习SpringCloud的restful方式: RestTemplate (本篇)、Feign 贰 RestTemplate 类似 Http...

___大侠 ⋅ 7分钟前 ⋅ 0

React创建组件的三种方式

1.无状态函数式组建 无状态函数式组件,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑。 无状态函数式组...

kimyeongnam ⋅ 14分钟前 ⋅ 0

react 判断实例类型

今天在写组件的时候想通过判断内部子元素不同而在父元素上应用不同的class,于是首先要解决的就是如何判断子元素的类型。 这里附上一个讲的很全面的文章: https://www.cnblogs.com/onepixel...

球球 ⋅ 21分钟前 ⋅ 0

Centos7备份数据到百度网盘

一、关于 有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百...

zctzl ⋅ 35分钟前 ⋅ 0

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 37分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 45分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 今天 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 今天 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部