day 3 list列表生成式
1.定义一个list列表,里面元素是0-33
a = [] i = 0
while i<33:
a.append(i)
i+=1 print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]
2.range (切片)
1)python2 版本
range风险:python2 版本中,有时候一次性申请很大的内存,不会给你
#### range 返回list列表 和切片功能相同
In [1]: range(10)
Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [2]: range(10,17)
Out[2]: [10, 11, 12, 13, 14, 15, 16] In [3]: range(10,17,2)
Out[3]: [10, 12, 14, 16]
In [5]: range(0,100000) ### 运行结果
994,
995,
996,
997,
998,
999,
...]
In [5]: range(0,1000000000)
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-5-30124a0b9388> in <module>()
----> 1 range(0,1000000000) MemoryError:
##range风险:python2 版本中,有时候一次性申请很大的内存,不会给你
2)python3版本:要一个数字,给你一个,不会全部一次性给
In [1]: range(0,10)
Out[1]: range(0, 10) In [2]: range(10)
Out[2]: range(0, 10) In [3]: range(0,100000000)
Out[3]: range(0, 100000000)
3.列表生成式
1) a = [ i for i in range(0,18) ]
In [6]: a = [i for i in range(0,18)] In [7]: a
Out[7]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] In [8]: a = [22 for i in range(0,18)] #for只负责循环的次数17次 In [9]: a
Out[9]: [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22]

2) a = [ i for i in range(10) if i%2==0 ]
In [10]: a = [i for i in range(10) if i%2==0] In [11]: a
Out[11]: [0, 2, 4, 6, 8]
3) d = [ (i,j) for i in range(3) for j in range(2)]
In [15]: d = [ i for i in range(3) for j in range(2)] In [16]: d
Out[16]: [0, 0, 1, 1, 2, 2] In [17]: d = [ i,j for i in range(3) for j in range(2)]
File "<ipython-input-17-0277977bdeb0>", line 1
d = [ i,j for i in range(3) for j in range(2)]
^
SyntaxError: invalid syntax
In [19]: d = [ (i,j) for i in range(3) for j in range(2)] In [20]: d
Out[20]: [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)] #坐标轴

4)e = [(i,j,k) for i in range(3) for j in range(2) for k in range(2)]
In [21]: e = [(i,j,k) for i in range(3) for j in range(2) for k in range(2)] In [22]: e
Out[22]:
[(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(1, 0, 0),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1),
(2, 0, 0),
(2, 0, 1),
(2, 1, 0),
(2, 1, 1)]
day 3 list列表生成式的更多相关文章
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...
- python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)
生成列表的方式 data = [1,2,3] 需求 每个数字加上1 # data = ( x*2 for x in range(5)) print(data) 列表生成式 后面的I赋予加1操 ...
- python基础——列表生成式
python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...
- python学习笔记——列表生成式与生成器
1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...
- Python的高级特性之切片、迭代、列表生成式、生成器
切片 切片就是获取一个list.tuple.字符串等的部分元素 l = range(100) #取[0,5)元素 print(l[:5]) #[0, 1, 2, 3, 4] #在[0,99]中每隔10 ...
- Python学习笔记6(列表生成式)
1.生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3 ...
- Python 列表生成式、生成器、迭代器
列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么 ...
- Python学习笔记(六)Python的列表生成式、生成器
列表生成式 List Comprehensions 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式. 简单的数值范围的list可以使用一下方式生成: >>> ...
- python基础:列表生成式和生成器
列表生成式(List Comprehension) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成 list ...
- python之列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 1,比如:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, ...
随机推荐
- JavaScript中如何判断两变量是否“相等”?
1 为什么要判断? 可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? ...
- Junit4所需jar包
在eclipse中新建一个Junit类,运行时出现java.lang.NoClassdeffounderror:org/apache/commons/logging/LogFactory错误,原来是缺 ...
- BZOJ 3680: 吊打XXX (模拟退火)
//yy:今天简单入门学了下ORZ 爬山算法:兔子朝着比现在高的地方跳去.它找到了不远处的最高山峰.但是这座山不一定是珠穆朗玛峰.这就是爬山算法,它不能保证局部最优值就是全局最优值. 模拟退火:兔子喝 ...
- Ajax回退刷新页面问题的解决办法
在脚本之家看到一篇文章,觉得以后可能会用上,但是竟然不能收藏,所以只能将其转到博客园. 以下是原文地址: http://www.jb51.net/article/87856.htm 这篇文章主要介 ...
- Educational Codeforces Round 55 (Rated for Div. 2) C. Multi-Subject Competition 【vector 预处理优化】
传送门:http://codeforces.com/contest/1082/problem/C C. Multi-Subject Competition time limit per test 2 ...
- Mybatis——实体类属性名和数据库字段名不同时的解决方案
数据库的字段: 对应的实体类: 方案一: 在XML映射文件中使用的resultMap,优点:可以被重复使用. <resultMap id="BaseResultMap" ty ...
- 学习openGL一——配置环境
openGL支持很多语言,C#, Java, Python, 和Lua.如果你没有使用C/C++,你必须下载和安装一个openGL包或库. 如果你使用了C/C++,你必须先建立一个编译环境,visua ...
- 用LinkedList list实现栈的功能
package homework; public class Dog extends Pet { String strain = "dogxx"; int love=80; pub ...
- java中StringBuffer与String、StringBuilder的区别
在java中我们经常可以看到StringBuffer和String的用法,但是我自己在使用过程中,经常会将两者弄混淆,今天我们就来了解一下两者的区别: 我们首先来看一下我们的官方API中的简单介绍: ...
- HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others) Me ...