python列表推导的几个例子
2016-01-12 22:55
519 查看
以下内容译自python文档中关于列表推导的说明,基本上包含了常见的几种列表推导方式,这里把它们记录下来也是为了防止遗忘,也方便以后查询。
1. 平方列表
如果你想创建一个包包含1到10的平方的列表,可以用下面的方法:
但是使用列表推导可以更简洁地实现:
另外,还有一种等价的方法,要用到lambd演算:
相比较而言,还是上面的方法更简洁直观。
2.其它方法
1. 平方列表
如果你想创建一个包包含1到10的平方的列表,可以用下面的方法:
>>>squares = [] >>>for x in range(10): ...squares.append(x**2) ... >>>squares [0,1,4,9,16,25,36,49,64,81]
但是使用列表推导可以更简洁地实现:
>>>squares = [x**2 for x in range(10)]
另外,还有一种等价的方法,要用到lambd演算:
>>>squares = map(lambd x:x**2,range(10))
相比较而言,还是上面的方法更简洁直观。
2.其它方法
>>> vec = [-4, -2, 0, 2, 4] >>> # 原列表的所有元素乘以2,成生一个新的列表 >>> [x*2 for x in vec] [-8, -4, 0, 4, 8] >>> # 通过if条件筛选掉小于0的元素 >>> [x for x in vec if x >= 0] [0, 2, 4] >>> # 可以将函数作用于所有元素从而生成一个新的列表 >>> [abs(x) for x in vec] [4, 2, 0, 2, 4] >>> # 调用列表元素的对象方法来生成新列表 >>> freshfruit = [' banana', ' loganberry ', 'passion fruit '] >>> [weapon.strip() for weapon in freshfruit] ['banana', 'loganberry', 'passion fruit'] >>> # 生成双元组列表,比如 (number, square) >>> [(x, x**2) for x in range(6)] [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)] >>> # 推导式中的元组必须用括号括起来,否则会报错 >>> [x, x**2 for x in range(6)] File "<stdin>", line 1 [x, x**2 for x in range(6)] ^ SyntaxError: invalid syntax >>> # 列表降维,从嵌套的二维列表降为一维列表 >>> vec = [[1,2,3], [4,5,6], [7,8,9]] >>> [num for elem in vec for num in elem] [1, 2, 3, 4, 5, 6, 7, 8, 9]
相关文章推荐
- python入门-基础知识
- Using Django with GAE Python 后台抓取多个网站的页面全文
- python核心编程-正则表达式之-创建字符集合
- 【学神-RHEL7】P4-Python列表操作和字符串的常用方法
- python核心编程-正则表达式之-任意单个字符
- input和raw_input区别
- python学习第二天
- 《笨办法学Python》 第11课手记
- 正则表达式 口诀 学习正则的朋友看看
- python核心编程-正则表达式之-匹配多个字符串
- Python学习手册 - 11
- python核心编程之-search函数
- python核心编程-正则表达式之match
- Python入门
- python 列表总结
- Python Division //
- python中对文件、文件夹(文件操作函数)的操作
- python selenium的模拟点击,模拟滑动等操作
- Python Division and Remainders
- python爬取知乎话题的精华问题下的用户信息