Python从零开始系列连载(19)——Python特色数据类型(列表)(下)

浏览: 4773

前言

前文传送门:

Python从零开始系列连载(1)——安装环境

Python从零开始系列连载(2)——jupyter的常用操作(上)

Python从零开始系列连载(3)——jupyter的常用操作(中)

Python从零开始系列连载(4)——jupyter的常用操作(下)

Python从零开始系列连载(5)——Python的基本数据类型(上)

Python从零开始系列连载(6)——Python的基本数据类型(中)

Python从零开始系列连载(7)——Python的基本数据类型(中二)

Python从零开始系列连载(8)——Python的基本数据类型(下)

Python从零开始系列连载(9)——Python的基本运算和表达式(上)

Python从零开始系列连载(10)——Python的基本运算和表达式(中)

Python从零开始系列连载(11)——Python的基本运算和表达式(中二)

Python从零开始系列连载(12)——Python的基本运算和表达式(下)

Python从零开始系列连载(13)——Python程序的基本控制流程(上)

Python从零开始系列连载(14)——Python程序的基本控制流程(中) 

Python从零开始系列连载(15)——Python程序的基本控制流程(中二)

Python从零开始系列连载(16)——Python程序的基本控制流程(下)

Python从零开始系列连载(17)——Python特色数据类型(列表)(上)

Python从零开始系列连载(18)——Python特色数据类型(列表)(中)


删除列表中的元素

del操作可以删除整个列表或者列表的子列表


指定索引 0 删除元素:


Clipboard Image.png


删除列表的字列表:


Clipboard Image.png


删除整个列表:


Clipboard Image.png


删除之后再次访问list1就报错了~


列表生成式(难点)


在Python的列表中,列表生成式体现了Python优雅的特色


如果让你生成一个列表,元素是1~10的平方,你会怎么生成?


可能,你会这样:


Clipboard Image.png


小明:老师!你讲错了!你只给了前五个的!


Clipboard Image.png


小明啊,不是老师错了,是老师懒啊,程序员都喜欢偷懒的,之后的规律大家都懂的,我就不打了


小红:老师!我有更好的想法


哦?你说说.


小红:老师,我们之前学了for循环,可以这样生成这个列表的:


Clipboard Image.png


小红:先建立个空列表,再每次循环将元素append()进去

最后就ok啦~\(≧▽≦)/~啦啦啦


小红真棒!小明你好好学习一下


不过,今天我们要打开新世界的大门了!!!


Clipboard Image.png


不要激动!小明,你怎么流鼻血了??


Clipboard Image.png


列表生成式来解决这一问题:


Clipboard Image.png


一行代码搞定!,是不是很优雅,哈哈


Clipboard Image.png


大家比较一下循环和列表生成式,发现列表生成式结构如下

[表达式 for i in 序列]


小明:老师!如果循环里是双层的,你还能用列表生成式?


这。。。当然可以!


Clipboard Image.png


其实,还有这些操作:

排列组合(其实相当于双层循环)


Clipboard Image.png


求出1~10中能被3整除的数的平方做成列表:

通过if来筛选符合条件的(就是循环里嵌套判断)


Clipboard Image.png


其实呢,你们刚学的列表生成式是Python高级编程的内容,但是你已经学会了

是不是感觉自己很棒棒啊!


Clipboard Image.png


今天作业是自己跟着操作一遍~

自己不敲代码永远学不会写代码


下课

人生苦短,我选Python

未完待续,连载中......

现在还坚持再看连载学习的你们真的很棒棒!


下一篇:Python从零开始系列连载(20)——Python特色数据类型(元组)(上)

推荐 6
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

23 个评论

求出1~10中能被3整除的数的平方做成列表:
通过if来筛选符合条件的(就是循环里嵌套判断)

这个除了老师您讲解的这个表达方式,还可以用什么方式表达出来呢?
现在有可能听着听着想用之前讲过的方式表达,但是又抓不住那个点。
创建空列表
for循环遍历1~10
循环里嵌套判断能被3整除
能的话append到列表里
创建空列表
for循环遍历1~10
循环里嵌套判断能被3整除
能的话append到列表里
list1 = []
for i in range(1,11):
if i%3 == 0:
list1.append(i**2)
print(list1)
[i*j for j in range (1,i) for i in range (1,10) if j <= i]
老师,为什么我敲入这行代码后,报错显示i没有被定义呢。
你外层循环j用到了i 可是i在内层循环才定义
你外层循环j用到了i 可是i在内层循环才定义
[i*j for i in range(1,10) for j in range(1,i)if j<i] 把i定义在前面就可以了
对的
list4=[]
for i in range(1,4):
for j in range(1,i):
list4.append(i+j)
print(list4)
结果:[3, 4, 5]
[i+j for j in range(1,i) for i in range(1,4)]
结果:[2, 3, 4, 3, 4, 5]
结果为什么不一样啊?
list4=[]
for i in range(1,4):
for j in range(1,1):
print(i+j)
list4.append(i+j)
print(list4)

你可以理解一下这个是什么
list4=[]
for i in range(1,4):
for j in range(1,1):
print(i+j)
list4.append(i+j)
print(list4)

你可以理解一下这个是什么
大伟老师你好,我想生成一个1-20的质数列表,我的办法是先生成一个1-20的列表然后把其中的非质数删除,代码如下:
list4=[i for i in range(1,21)]
for i in range(2,21):
for j in range(2,i):
if i%j==0:
list4.remove(i)
break
感觉这个办法有些绕弯,大伟老师有没有更加简便的方法,谢谢老师!
有专门找出多少以内的质数方法 你百度一下
哇,有这么多人评论,加油哦
感觉越学越难了,不会融合沟通
可以回头看看哈
加油
[i*j for i in range(1,10) for j in range(1,i) if j<=i]

[i*j for j in range(1,i) for i in range(1,10) if j<=i]
结果不一样了,请问怎么理解
[i*j for j in range(1,i) for i in range(1,10) if j<=i],这个会报错。请问您老师您文章里是怎么打出来的结果???
你这样,[i*j for j in range(1,10) for i in range(1,j) if j<=i]
如果一个for循环下有两个或多个运算,怎么写,例如:s=0
for i in range(1,10):
s= s+0
i = i +1
你的i是自动循环递增的,在循环体里就不要写i = i + 1了

要回复文章请先登录注册