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列表生成式的更多相关文章

  1. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

    1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...

  2. python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)

    生成列表的方式 data = [1,2,3]  需求   每个数字加上1 # data = ( x*2 for x in range(5)) print(data)   列表生成式 后面的I赋予加1操 ...

  3. python基础——列表生成式

    python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...

  4. python学习笔记——列表生成式与生成器

    1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...

  5. Python的高级特性之切片、迭代、列表生成式、生成器

    切片 切片就是获取一个list.tuple.字符串等的部分元素 l = range(100) #取[0,5)元素 print(l[:5]) #[0, 1, 2, 3, 4] #在[0,99]中每隔10 ...

  6. Python学习笔记6(列表生成式)

    1.生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3 ...

  7. Python 列表生成式、生成器、迭代器

    列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么 ...

  8. Python学习笔记(六)Python的列表生成式、生成器

    列表生成式 List Comprehensions 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式. 简单的数值范围的list可以使用一下方式生成: >>> ...

  9. python基础:列表生成式和生成器

    列表生成式(List Comprehension) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成 list ...

  10. python之列表生成式

    列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 1,比如:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, ...

随机推荐

  1. 两种MVC框架比较

    基于Web的MVC framework在J2EE的世界内已是空前繁荣. TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC框 ...

  2. UVa 1636 - Headshot(概率)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. CTSC2018 && APIO2018 && SDOI2018R2游记

    Day -? 占个坑先.希望CTSC,APIO别打铁,R2别滚粗QAQ CTSC Day 0 早起坐车睡觉颓废报道颓废 反正游记就是咕懒得写了 Day 1 早上四点被xp的闹钟吵醒(???还两次) 幸 ...

  4. 【[USACO09DEC]牛收费路径Cow Toll Paths】

    很妙的一道题,我之前一直是用一个非常暴力的做法 就是枚举点权跑堆优化dijkstra 但是询问次数太多了 于是一直只有50分 今天终于抄做了这道题,不贴代码了,只说一下对这道题的理解 首先点权和边权不 ...

  5. STL - next_permutation 全排列函数

    学习: http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html http://blog.csdn.net/ac_gibson/article/deta ...

  6. WMIC_2

  7. VC++和C语言中常见数据类型转换为字符串的方法

    1.短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 2.长整型(long) lt ...

  8. Linux下shellcode的编写

    Linux下shellcode的编写 来源  https://xz.aliyun.com/t/2052 EdvisonV / 2018-02-14 22:00:42 / 浏览数 6638 技术文章 技 ...

  9. Vue教程:过滤器filters(五)

    Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 JavaScrip ...

  10. 课时10.第一个HTML网页(掌握)

    网页的固定格式 编写网页和写信一样都有一套规范和要求,这套规范和要求中规定了写信的固定格式 写信基本结构 亲爱的xx: 你好! 我.................. ...... 此致 敬礼! xx ...