洗礼灵魂,修炼python(6)--活起来的代码+列表
2018-03-02 09:37
441 查看
活起来的用法:![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929215604215-943823251.png)
注意python2中和python3中,input函数是不太一样的,python2中,input用户传入什么类型就是什么类型而python3中,不管传入什么类型,都会变成字符串,这和python2中的raw_input函数相同,并且在python3中不再有raw_input。有了input,就可以和用户交互,可以让代码活起来,然而你是不是觉得好像没什么鸟用对不对,用处大了,后面大部分编程都会用到它。
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220527450-1490586851.png)
创建列表其中一个方式,list(),这是一个工厂函数,和其他的内置函数不太相同,记住就行,后面元组,集合,不可变集合,字典都有自己的工厂函数3.列表的方法:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220714794-898811877.png)
dir(),内置函数,可以查看当前函数下所有的方法,此方法非常识理解的方法,后面在函数篇和模块篇会提到带有下划线的方法具有特殊意义,以后再说。所以常用的列表方法有:append,count,extend,index,insert,pop,remove,reverse,sortappend:添加列表元素,但每次只能添加一个对象
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220944715-176525473.png)
注意那句【每次只能添加一个对象】
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223640887-892602198.png)
count:计数用
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929221329278-1443959435.png)
extend:添加另一个列表进去,与被添加列表合并
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223611075-769795850.png)
index:返回列表内元素所在索引(下标)位置
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223627262-744566120.png)
注意索引是从0开始且从左到右计数,所以元素2在索引1位置,并不是常识认为的是元素2
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930102955090-1738148954.png)
insert:插入元素
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223834262-1247718877.png)
insert内的第一个参数是索引,第二个是要插入的元素 pop:如果不添加索引参数,则删除末尾的元素并打印,如果添加索引参数,则删除对应的索引参数并打印:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223921903-537235030.png)
remove:给定一个元素并将其删除
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223942794-1734179540.png)
reverse: 将列表内的元素顺序颠倒排列
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222307997-1534782746.png)
sort: 默认按照ASCII编码由小到大给列表排序
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222412153-316898687.png)
所以如果要从大到小排列可以先用sort,再用reverse翻转过来就行。不过其实没这么麻烦,因为sort方法还有个参数,reverse,此reverse非上面那个,此reverse是sort内的一个参数,因为其参数等于False,即默认为假,所以从小到大。而如果将reverse等于True就可以直接从大到小了。用法和后面的sorted函数几乎一样,看下面补充内容的就行。 4.列表是可变对象,支持原处修改,什么叫支持原处修改,就是增删改其内阐述,内存空间对应的id不变:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222533465-2143403755.png)
5.可以用索引访问+更改:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930163851559-552092715.png)
6.列表分片slice(列表切片):一次性获取多个列表元素
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930102705059-1974093388.png)
[1:3],意思是从索引位置1开始索引位置3结束,但不包括索引在3的 切片内的参数是索引,切片后不会改变其对象,若要改变得重新赋值 假如我想 把整个列表切出来呢?
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103600762-874966143.png)
像这样,索引3就代表最后一个元素,但是切不出来啊,因为不包括它的,可以这样:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103310481-181580441.png)
省略冒号后面的元素,就可以取出最后一个元素了。当然你会想,可以省略后面,可以省略前面吗?可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103823669-405816624.png)
那可不可以都省略呢?可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103900669-99840259.png)
都省略就把整个可切片或者叫取出来了,是不是觉得有点像把整个给拷贝出来了,是的,这算是一种拷贝,后面在讲到深拷贝,浅拷贝时会继续说 又有个问题了,我不想按照这样的方式取,我只想取其中的一些,比如我要取索引1,3,5的,或者0,2,4的怎么办?按照索引0,2,4来取:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104237215-398691117.png)
这个[::2]写法什么意思?,第一个冒号都知道,直接拷贝整个,第二个冒号后面的2是步进长度的意思,通俗的说就是,一般人都是每迈一步就是一步的距离,偏偏有人腿长的要跨两步远,跨两步来取,也就达到了取0,2,4的效果当然取1,3,5也是可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104558169-1476782965.png)
这个列表元素少了点,换个元素多的看下:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104751387-1921422354.png)
当然步长也是可以改变的,你可以三步一取,四步一取都可以的。
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222726512-504398498.png)
举例:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222904122-1062714092.png)
里面的reverse参数,默认是false,即表示默认从小到大排列,如果让它为True的效果:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223013012-1392222128.png)
注意的是,使用sorted函数,只是打印出结果,不会改变其对象:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929224013075-569100508.png)
如果希望改变,需要将sorted得到的结果赋值给变量:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223218434-8605163.png)
sorted在后面会有很大的作用,以后再说。
![](http://images2017.cnblogs.com/blog/1249183/201710/1249183-20171011195155105-1018163395.png)
例:
![](http://images2017.cnblogs.com/blog/1249183/201710/1249183-20171011195137371-1985232090.png)
reversed比sorted功能少很多reversed用得倒很少,不过你得知道有这么个用法
使用input内置函数
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929215604215-943823251.png)
注意python2中和python3中,input函数是不太一样的,python2中,input用户传入什么类型就是什么类型而python3中,不管传入什么类型,都会变成字符串,这和python2中的raw_input函数相同,并且在python3中不再有raw_input。有了input,就可以和用户交互,可以让代码活起来,然而你是不是觉得好像没什么鸟用对不对,用处大了,后面大部分编程都会用到它。
python几大核心之——列表(list)
1.什么是列表列表的特征是中括号,好比字符串的特征是引号一样2.创建一个列表的两种方式:![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220527450-1490586851.png)
创建列表其中一个方式,list(),这是一个工厂函数,和其他的内置函数不太相同,记住就行,后面元组,集合,不可变集合,字典都有自己的工厂函数3.列表的方法:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220714794-898811877.png)
dir(),内置函数,可以查看当前函数下所有的方法,此方法非常识理解的方法,后面在函数篇和模块篇会提到带有下划线的方法具有特殊意义,以后再说。所以常用的列表方法有:append,count,extend,index,insert,pop,remove,reverse,sortappend:添加列表元素,但每次只能添加一个对象
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929220944715-176525473.png)
注意那句【每次只能添加一个对象】
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223640887-892602198.png)
count:计数用
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929221329278-1443959435.png)
extend:添加另一个列表进去,与被添加列表合并
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223611075-769795850.png)
index:返回列表内元素所在索引(下标)位置
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223627262-744566120.png)
注意索引是从0开始且从左到右计数,所以元素2在索引1位置,并不是常识认为的是元素2
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930102955090-1738148954.png)
insert:插入元素
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223834262-1247718877.png)
insert内的第一个参数是索引,第二个是要插入的元素 pop:如果不添加索引参数,则删除末尾的元素并打印,如果添加索引参数,则删除对应的索引参数并打印:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223921903-537235030.png)
remove:给定一个元素并将其删除
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223942794-1734179540.png)
reverse: 将列表内的元素顺序颠倒排列
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222307997-1534782746.png)
sort: 默认按照ASCII编码由小到大给列表排序
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222412153-316898687.png)
所以如果要从大到小排列可以先用sort,再用reverse翻转过来就行。不过其实没这么麻烦,因为sort方法还有个参数,reverse,此reverse非上面那个,此reverse是sort内的一个参数,因为其参数等于False,即默认为假,所以从小到大。而如果将reverse等于True就可以直接从大到小了。用法和后面的sorted函数几乎一样,看下面补充内容的就行。 4.列表是可变对象,支持原处修改,什么叫支持原处修改,就是增删改其内阐述,内存空间对应的id不变:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222533465-2143403755.png)
5.可以用索引访问+更改:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930163851559-552092715.png)
6.列表分片slice(列表切片):一次性获取多个列表元素
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930102705059-1974093388.png)
[1:3],意思是从索引位置1开始索引位置3结束,但不包括索引在3的 切片内的参数是索引,切片后不会改变其对象,若要改变得重新赋值 假如我想 把整个列表切出来呢?
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103600762-874966143.png)
像这样,索引3就代表最后一个元素,但是切不出来啊,因为不包括它的,可以这样:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103310481-181580441.png)
省略冒号后面的元素,就可以取出最后一个元素了。当然你会想,可以省略后面,可以省略前面吗?可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103823669-405816624.png)
那可不可以都省略呢?可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930103900669-99840259.png)
都省略就把整个可切片或者叫取出来了,是不是觉得有点像把整个给拷贝出来了,是的,这算是一种拷贝,后面在讲到深拷贝,浅拷贝时会继续说 又有个问题了,我不想按照这样的方式取,我只想取其中的一些,比如我要取索引1,3,5的,或者0,2,4的怎么办?按照索引0,2,4来取:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104237215-398691117.png)
这个[::2]写法什么意思?,第一个冒号都知道,直接拷贝整个,第二个冒号后面的2是步进长度的意思,通俗的说就是,一般人都是每迈一步就是一步的距离,偏偏有人腿长的要跨两步远,跨两步来取,也就达到了取0,2,4的效果当然取1,3,5也是可以的:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104558169-1476782965.png)
这个列表元素少了点,换个元素多的看下:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170930104751387-1921422354.png)
当然步长也是可以改变的,你可以三步一取,四步一取都可以的。
其实说到这,接着说一个特殊的函数——sorted函数
sorted和sort函数有点相似,但是sorted是内置函数,而sort只是列表里的一个方法,只能对列表使用![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222726512-504398498.png)
举例:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929222904122-1062714092.png)
里面的reverse参数,默认是false,即表示默认从小到大排列,如果让它为True的效果:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223013012-1392222128.png)
注意的是,使用sorted函数,只是打印出结果,不会改变其对象:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929224013075-569100508.png)
如果希望改变,需要将sorted得到的结果赋值给变量:
![](http://images2017.cnblogs.com/blog/1249183/201709/1249183-20170929223218434-8605163.png)
sorted在后面会有很大的作用,以后再说。
那么既然都说到sorted,再说说reversed
reversed() #和list.reverse实现方式一样,让参数翻转排列![](http://images2017.cnblogs.com/blog/1249183/201710/1249183-20171011195155105-1018163395.png)
例:
![](http://images2017.cnblogs.com/blog/1249183/201710/1249183-20171011195137371-1985232090.png)
reversed比sorted功能少很多reversed用得倒很少,不过你得知道有这么个用法
相关文章推荐
- 洗礼灵魂,修炼python(15)--列表进阶话题—>列表解析/列表生成器
- 洗礼灵魂,修炼python(33)--面向对象编程(3)—特殊类方法__init__,公有属性,私有属性
- 洗礼灵魂,修炼python(34)--面向对象编程(4)—继承
- 洗礼灵魂,修炼python(13)--模块random,math,pickle
- 洗礼灵魂,修炼python(34)--面向对象编程(4)—继承
- 洗礼灵魂,修炼python(14)--模块decimal, fractions,operator,collections以及精度介绍
- 洗礼灵魂,修炼python(35)--面向对象编程(5)—多重继承,组合
- 洗礼灵魂,修炼python(36)--面向对象编程(6)—类的相关内置函数issubclass,hasattr等
- 洗礼灵魂,修炼python(22)--自定义函数(3)—函数作用域,闭包
- 洗礼灵魂,修炼python(23)--自定义函数(4)—闭包进阶问题—>报错UnboundLocalError: local variable 'x' referenced before assign
- 洗礼灵魂,修炼python(26)--编程核心之“递归”
- 洗礼灵魂,修炼python(37)--面向对象编程(7)—了解魔法方法
- 洗礼灵魂,修炼python(27)--异常处理(1)—>了解异常
- 洗礼灵魂,修炼python(39)--面向对象编程(9)—魔法方法表
- 洗礼灵魂,修炼python(17)--跨平台操作三剑客—os,os.path.sys模块
- 洗礼灵魂,修炼python(24)--自定义函数(5)—匿名函数lambda
- 洗礼灵魂,修炼python(29)--装饰器(1)—>利用经典案例解析装饰器概念
- 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
- 洗礼灵魂,修炼python(18)--温故加知新
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”