python 使用循环生成list
#-*- coding:UTF-8 -*- squares=[]
for x in range(10):
squares.append(x**2) print squares
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
#等价于
squares=[x**2 for x in range(10)]
print squares
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] combs=[]
for x in [1,2,3]:
for y in [3,1,4]:
if x!=y:
combs.append((x,y))
print combs
#等价于:
combs=[(x,y) for x in [1,2,3] for y in [3,1,4] if x!=y]
print combs
#[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] vec=[-4,-2,0,2,4]
print [x*2 for x in vec]
#[-8, -4, 0, 4, 8] print 30*'*','print [x for x in vec if x>=0]',30*'*'
print [x for x in vec if x>=0]
#[0, 2, 4] print [abs(x) for x in vec]
#[4, 2, 0, 2, 4] freshfruit=[' banana',' apple ','loganberry ','passion fruit ']
#strip() 去除字符串首尾空格
print [weapon.strip() for weapon in freshfruit]
#['banana', 'apple', 'loganberry', 'passion fruit'] print 30*'*',"[(x,x**2) for x in range(6)]",30*'*'
print [(x,x**2) for x in range(6)]
#[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)] vec=[[1,2,3],[4,5,6],[7,8,9]]
print [num for elem in vec for num in elem]
#[1, 2, 3, 4, 5, 6, 7, 8, 9] matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
#list中的每个元素都是list,将list中的每个list元素中的元素按照索引组合成一个新的list
print [[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]) print 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)
print transposed #等价于zip(*matrix)
print zip(*matrix)
#[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
此外,map()也可以返回list,map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
#lambda表示匿名函数,冒号前面的x表示函数参数,冒号后面是表达式,匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果
squares=map(lambda x:x**2,range(10))
print squares #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
python 使用循环生成list的更多相关文章
- Python for循环生成列表
一般Python for语句前不加语句,但我在机器学习实战中看到了这两条语句: featList = [example[i] for example in dataSet] classList = [ ...
- python基础-循环
循环 循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直 ...
- python脚本批量生成数据
在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家 ...
- Python学习-7.Python的循环语句-for语句
Python中循环可以使用for语句来实现 list = ['Tom','Lucy','Mary'] for name in list: print(name) 则将会依次输出Tom Lucy Mar ...
- Python列表的生成
要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, 4, 5, ...
- Python的循环正确的操作使用方法详解
要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直接写表达式就 ...
- python for循环及常用函数
python for循环 格式: for iterating_var in sequence: statements(s) ###################################### ...
- python 6 循环
循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直接写表 ...
- python实现树莓派生成并识别二维码
python实现树莓派生成并识别二维码 参考来源:http://blog.csdn.net/Burgess_Liu/article/details/40397803 设备及环境 树莓派2代 官方系统R ...
随机推荐
- spark 数据倾斜的一些表现
spark 数据倾斜的一些表现 https://yq.aliyun.com/articles/62541
- Java中的守护线程——daemon
絮叨 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 定义:守护线程(aka:服务线程),在没有用户线程可服务时会自动离开. 优先级:守护线程的优先级 ...
- TCP/IP协议层
除了少数外,OSI协议簇本身已经成为Internet历史早期的遗留产物.当前OSI协议对于网络技术的贡献看来主要是对学习网络的学生讲述模块化的协议簇时,可以引用它的参考模型进行说明等的有限用途. 下面 ...
- Putty远程SSH免密码方式链接Linxu
1.首先确保Linxu服务器安装了ssh服务,可以输入ssh命令测试. ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spe ...
- 【jquery】ajax 请求成功后新开窗口被拦截解决方法
问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以 ...
- iframe 父页面与子页面之间的方法的相互调用【转】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 自定义垂直拖动的seekbar进度条
系统自定义的seekbar为横向拖动的样式,需要纵向的时则需要自己定义,网上很多说了重写系统SeekBar中onDraw()的方法,但是我使用的时候不知道为什么拖动条和点偏离了,不在一条直线上,好气. ...
- JQuery之拖拽插件
一直以来,都对JS获取元素的位置感到非常的困惑:一会client.一会offset.一会scroll. 再加上各大浏览器之间的不兼容,唉,搞得哥晕晕乎乎的. 而很多页面效果都要用到这些位置.不得已,得 ...
- SQLite 日期 & 时间
具体看http://www.runoob.com/sqlite/sqlite-date-time.html 不过实例介绍的不够详细,以下详细举例: SQLite包含了如下时间/日期函数:datetim ...
- UDP丢包原因
一.主要丢包原因 1.接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失.对于这种情况可以修改接收 ...