列表
创建列表
这一章我在学习时,感觉很像C语言的数组,感觉很奇妙啊进入笔记模式
>>> number = [1,2,3,4,5,6,7]
>>> number
[1, 2, 3, 4, 5, 6, 7]
append()
append()的作用是向列表的最后一位添加元素
如;
>>> number = [1,2,3,4,5,6,7]
>>> number
[1, 2, 3, 4, 5, 6, 7]
>>> number.append(0)
>>> number
[1, 2, 3, 4, 5, 6, 7, 0]
注;看见连接符了吗,就是那个“.”,我在第一章里提到过哦,这里详解一下,可以理解为{范围}append()这个方法是属于number的列表对象的。
细心地同学可能会想到如果我加入两个元素,append还可以使用吗,看程序给的回答。
>>> number.append(1,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
>>>
妈呀,报错了,这时候应该下一位选手上场了,咱没有那金刚钻,不揽瓷器活,就这样extend上场了
extend()
extend 的作用是向列表后添加多个元素
如下
>>> number.extend([1,2])
>>> number
[1, 2, 3, 4, 5, 6, 7, 0, 1, 2]
注;发现不同之处了吗,为什么append里没有中括号,而extend里面有呢? 解答;这里因为列表里添加多个元素,可以看做以原有的列表,去在申请一个列表进行拼接
如下
number = [1,2,3,4]
extend的列表 = [5,6,7,8]
拼接给number
number = [1,2,3,4,5,6,7,8]
那么想在任意位置插入元素怎么办。
insert上场
insert()
insert的作用是在指定的位置插入元素
如;
>>> number
[1, 2, 3, 4, 5, 6, 7, 0, 1, 2]
>>> number.insert(2,3)
>>> number
[1, 2, 3, 3, 4, 5, 6, 7, 0, 1, 2]
insert( ,)第一个参数代表着元素的位置,第二个参数代表着要插入的元素(突然有点害羞,我想我在开车),前面的文章说过Python的顺序索引是从0开始数的,这里不水啊。
那么我想查看列表里的某个元素怎么办
答;好问题,天钧不愧是玉树临风,风流倜傥........
咳咳,想查看列表里的某个元素,那好办直接索引
看例子
>>> name = ['天钧','老五','乌木','老三']
>>> name
['天钧', '老五', '乌木', '老三']
>>> name[0]
'天钧'
>>> name[2]
'乌木'
懂了吗(好想开大货车,带着一腔梦想去,喂牧羊犬)
问;如何从列表里删除元素呢
陷入沉思,从列表里删除元素,我的认知里有三种方法,分别为
pop()
remove()
del
来咱们先介绍第一位选手pop()。
pop()
pop作用是默认弹出列表里的最后一位元素
如下;
>>> name.pop()
'老三'
>>> name
['天钧', '老五', '乌木']
有趣的是,它在弹出最后一位 元素时,还会找你确认一下,但是只是让你了解它刚刚把谁弹出去了。[可怜了我们工作室的老三]
那想把老五也弹出去怎么办
>>> name
['天钧', '老五', '乌木']
>>> name.pop(1)
'老五'
>>> name
['天钧', '乌木']
pop的人生格言:pop里带索引,我不爽谁我踢谁
下一位选手是del大家对它很熟悉吧
del
del的作用,直接删除列表
这是我见过最狂的,那刚刚抛弃的number试试。
>>> del number
>>> number
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'number' is not defined
注意,它不是个列表方法,是个语句没有小点点。
好了,number滚蛋了[有点爽]
这时如果想用del删除指定元素,可不可以呢?
答案是完全可以
>>> del name[1]
>>> name
['天钧']
你能找出少了哪位同学吗。
下一位是谁呢,前面我已经剧透过了,remove()选手闪亮登场。
remove
作用:删除已知的元素,不能删除指定某个位置的元素
如,先向name里添加点元素,陪陪我。
>>> name.extend(['wocao',666,'好强'])
>>> name
['天钧', 'wocao', 666, '好强']
>>> name.remove(666)
>>> name
['天钧', 'wocao', '好强']
注意,数字可以不用加英文状态下的引号,刚刚犯了个小错误。
列表分片
开始与结束
怎么一次获得两个元素呢?
答;切它,那怎么切呢,如下
>>> name
['天钧', 'wocao', '好强']
>>> name[1:2]
['wocao']
>>> name[0:2]
['天钧', 'wocao']
找不同喽,细心的同学发现,第一次的为什么只返回了['wocao'] 呢,第二次为什么返回了两个值。
那就先要看看列表切片的方式了name[第一个参数:第二个参数]中间以英文状态下的冒号分割,以第一个参数为起点,以第二个元素为重点但是不包含第二个参数
如果没有开始位置怎么办
>>> name[0:2]
['天钧', 'wocao']
>>> name[:2]
['天钧', 'wocao']
答;没有的话,Python只能从0开始给你数了,看来Python为了你操碎了心。
不过,我还能玩。
>>> name[:2]
['天钧', 'wocao']
>>> name[1:]
['wocao', '好强']
>>> name[:]
['天钧', 'wocao', '好强']
>>> name
['天钧', 'wocao', '好强']
发现什么了,不妨笔记上记录自己的心得哦。
切片的进阶玩法
玩就要玩个痛快,进阶一下,玩斯它ψ(*`ー´)ψ
切片只能有两个参数吗,不不不[PS:第三个参数:“乃个孙子叫我”],他有第三个参数哦,阿秋~~(ps;你们谁看见谁骂我了),看例子
>>> number = [1,2,3,4,5,6,7,8,9] ps;我又回来了
>>> number
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> number[0:2:2]
[1]
>>> number[0:7:2]
[1, 3, 5, 7]
第三个参数有个名字叫做步长,前面提到,第一个参数是起步,第二个参数是结尾,第三个参数就是步长,步长是什么,就是等差的一个方法,从1开始的话,一共10个数,步长是2的话,那么是什么样子的呢?
>>> number
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> number.append(0)
>>> number[0:10:2]
[1, 3, 5, 7, 9]
这样的!!!!
你懂了吗
常用操作符在列表里的姿势
>>> list1 = [123]
>>> list2 = [456]
>>> list1 < list2
True
>>> list1 > list2
False
有人会疑问了,Python是怎么去比较两个列表的呢,答案是从第一个元素开始,比较,谁大谁赢,如下
>>> list1.append(456)
>>> list2.append(123)
>>> list1
[123, 456]
>>> list2
[456, 123]
>>> list1>list2
False
>>> list1 < list2
True
那数字这样玩那字符串怎么玩啊
马上继续
字符串玩法介绍
拼接玩法
>>> char1 = ['wocao']
>>> scring = ['666']
>>> char1 + scring
['wocao', '666']
那让它复读机呢,*它
>>> scring * 3
['666', '666', '666']
如何查看元素是否在列表里呢
答案是,看下面,in和not in上场了
>>> name
['天钧', 'wocao', '好强']
>>> 'wocao'in name
True
>>> 'wocao' not in name
False
index()
查询参数在列表的位置
看例子
>>> name.index('wocao')
1
count()
查询同一元素在列表里出现的次数
>>> number
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> number.extend([1,2,1,1,1,2])
>>> number
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 1, 1, 1, 2]
>>> number.count(1)
5
reverse()
反向排列
>>> number
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 1, 1, 1, 2]
>>> number.reverse()
>>> number
[2, 1, 1, 1, 2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sort()
排序
题外话:说实话,有点累了,主要是饿了,快8点了,写完文章,还要自己去做饭,很烦,所以文章到这里未免有点枯燥,(对不起,超小声bb)
看例子!!!
>>> number
[2, 1, 1, 1, 2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> number.sort()
>>> number
[0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 8, 9]
>>> number.reverse()
>>> number
[9, 8, 7, 6, 5, 4, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0]
天钧在这里还给倒过来了,是不是很有意思呢?
切片的补充
看例子
>>> apple = [1,2,3,4,5,6]
>>> banana = apple[:]
>>> banana
[1, 2, 3, 4, 5, 6]
>>> monkey = apple
>>> monkey
[1, 2, 3, 4, 5, 6]
看似都一样的对吧,其实不一样。
>>> apple.reverse()
>>> apple
[6, 5, 4, 3, 2, 1]
>>> banana
[1, 2, 3, 4, 5, 6]
>>> monkey
[6, 5, 4, 3, 2, 1]
monkey居然随着apple的变化而变化,实力捕捉墙头草。其实这个解释起来就是,banana拿到的是apple的值,而monkey拿到的是apple,发现不同了吗,嘿嘿嘿,今天的笔记都到这里了哦,告辞。