洗礼灵魂,修炼python(6)--活起来的代码+列表

时间:2022-02-01 17:43:11

活起来的用法:

使用input内置函数

洗礼灵魂,修炼python(6)--活起来的代码+列表

注意python2中和python3中,input函数是不太一样的,python2中,input用户传入什么类型就是什么类型而python3中,不管传入什么类型,都会变成字符串,这和python2中的raw_input函数相同,并且在python3中不再有raw_input。

有了input,就可以和用户交互,可以让代码活起来,然而你是不是觉得好像没什么鸟用对不对,用处大了,后面大部分编程都会用到它。

python几大核心之——列表(list)

1.什么是列表

列表的特征是中括号,好比字符串的特征是引号一样

2.创建一个列表的两种方式:

洗礼灵魂,修炼python(6)--活起来的代码+列表

创建列表其中一个方式,list(),这是一个工厂函数,和其他的内置函数不太相同,记住就行,后面元组,集合,不可变集合,字典都有自己的工厂函数

3.列表的方法:

洗礼灵魂,修炼python(6)--活起来的代码+列表

dir(),内置函数,可以查看当前函数下所有的方法,此方法非常识理解的方法,后面在函数篇和模块篇会提到

带有下划线的方法具有特殊意义,以后再说。

所以常用的列表方法有:append,count,extend,index,insert,pop,remove,reverse,sort

append:添加列表元素,但每次只能添加一个对象

洗礼灵魂,修炼python(6)--活起来的代码+列表

注意那句【每次只能添加一个对象】

洗礼灵魂,修炼python(6)--活起来的代码+列表

count:计数用

洗礼灵魂,修炼python(6)--活起来的代码+列表

extend:添加另一个列表进去,与被添加列表合并

洗礼灵魂,修炼python(6)--活起来的代码+列表

index:返回列表内元素所在索引(下标)位置

洗礼灵魂,修炼python(6)--活起来的代码+列表

注意索引是从0开始且从左到右计数,所以元素2在索引1位置,并不是常识认为的是元素2

洗礼灵魂,修炼python(6)--活起来的代码+列表

insert:插入元素

洗礼灵魂,修炼python(6)--活起来的代码+列表

insert内的第一个参数是索引,第二个是要插入的元素

pop:如果不添加索引参数,则删除末尾的元素并打印,如果添加索引参数,则删除对应的索引参数并打印:

洗礼灵魂,修炼python(6)--活起来的代码+列表

remove:给定一个元素并将其删除

洗礼灵魂,修炼python(6)--活起来的代码+列表

reverse: 将列表内的元素顺序颠倒排列

洗礼灵魂,修炼python(6)--活起来的代码+列表

sort: 默认按照ASCII编码由小到大给列表排序

洗礼灵魂,修炼python(6)--活起来的代码+列表

所以如果要从大到小排列可以先用sort,再用reverse翻转过来就行。

不过其实没这么麻烦,因为sort方法还有个参数,reverse,此reverse非上面那个,此reverse是sort内的一个参数,因为其参数等于False,即默认为假,所以从小到大。而如果将reverse等于True就可以直接从大到小了。用法和后面的sorted函数几乎一样,看下面补充内容的就行。

4.列表是可变对象,支持原处修改,什么叫支持原处修改,就是增删改其内阐述,内存空间对应的id不变:

洗礼灵魂,修炼python(6)--活起来的代码+列表

5.可以用索引访问+更改:

洗礼灵魂,修炼python(6)--活起来的代码+列表

6.列表分片slice(列表切片):一次性获取多个列表元素

洗礼灵魂,修炼python(6)--活起来的代码+列表

[1:3],意思是从索引位置1开始索引位置3结束,但不包括索引在3的

切片内的参数是索引,切片后不会改变其对象,若要改变得重新赋值

假如我想 把整个列表切出来呢?

洗礼灵魂,修炼python(6)--活起来的代码+列表

像这样,索引3就代表最后一个元素,但是切不出来啊,因为不包括它的,可以这样:

洗礼灵魂,修炼python(6)--活起来的代码+列表

省略冒号后面的元素,就可以取出最后一个元素了。当然你会想,可以省略后面,可以省略前面吗?可以的:

洗礼灵魂,修炼python(6)--活起来的代码+列表

那可不可以都省略呢?可以的:

洗礼灵魂,修炼python(6)--活起来的代码+列表

都省略就把整个可切片或者叫取出来了,是不是觉得有点像把整个给拷贝出来了,是的,这算是一种拷贝,后面在讲到深拷贝,浅拷贝时会继续说

又有个问题了,我不想按照这样的方式取,我只想取其中的一些,比如我要取索引1,3,5的,或者0,2,4的怎么办?

按照索引0,2,4来取:

洗礼灵魂,修炼python(6)--活起来的代码+列表

这个[::2]写法什么意思?,第一个冒号都知道,直接拷贝整个,第二个冒号后面的2是步进长度的意思,通俗的说就是,一般人都是每迈一步就是一步的距离,偏偏有人腿长的要跨两步远,跨两步来取,也就达到了取0,2,4的效果

当然取1,3,5也是可以的:

洗礼灵魂,修炼python(6)--活起来的代码+列表

这个列表元素少了点,换个元素多的看下:

洗礼灵魂,修炼python(6)--活起来的代码+列表

当然步长也是可以改变的,你可以三步一取,四步一取都可以的。

其实说到这,接着说一个特殊的函数——sorted函数

sorted和sort函数有点相似,但是sorted是内置函数,而sort只是列表里的一个方法,只能对列表使用

洗礼灵魂,修炼python(6)--活起来的代码+列表

举例:

洗礼灵魂,修炼python(6)--活起来的代码+列表

里面的reverse参数,默认是false,即表示默认从小到大排列,如果让它为True的效果:

洗礼灵魂,修炼python(6)--活起来的代码+列表

注意的是,使用sorted函数,只是打印出结果,不会改变其对象:

洗礼灵魂,修炼python(6)--活起来的代码+列表

如果希望改变,需要将sorted得到的结果赋值给变量:

洗礼灵魂,修炼python(6)--活起来的代码+列表

sorted在后面会有很大的作用,以后再说。