1.如何去创建一个列表:
使用中括号将数据包裹起来,数据之间用逗号隔开,就完成了列表的创建。例如:这就是一个列表
[1,2,3,4,5]
上面这个属于创建了一个匿名的列表,因为没有名字,所以创建完之后也没办法再次使用它,为了可以随时对他进行修改和引用,可以给它贴上一个变量名。
type()函数用于返回指定参数的类型,list即列表的意思
注意:python? 支持将各种不同的的数据放在一起。例如:
mix = [520,"小甲鱼",3.14,[1,2,3]]
上面这个列表里面有整数型,字符串,浮点型数据,甚至可以包含另一个列表。
那么你在不知道往列表里面放什么时,可以先创建一个空列表
2.向列表添加元素
可以往列表里面添加任何你想要添加的元素。添加元素到列表可以使用append方法:
但是注意:append不是一个内置函数,它是属于列表对象的一个方法,中间的? “ . ”?可以暂时理解为范围的意思。append()这个方法属于一个叫number的列表的对象的,
append方法只支持一个参数,如果希望添加多个数据,试试extend()方法向列表末尾添加多个元素。其实extend()事实上是使用一个列表来扩充另一个列表,所以它的参数是另一个列表。(没懂这句话是什么意思)
想要往列表任何一个位置添加元素,可以使用insert方法。
insert方法有两个参数,第一个参数是指定待插入的位置,(索引值)
第二个参数是待插入的元素值
insert()方法中代表位置的第一个参数还支持负数,代表与列表末尾的相对距离。
注意:在python中,第一个位置的索引值是0,第二个位置的索引值是1,第三个位置的索引值是2,以此类推
3.从列表当中获取元素
A. 通过索引值可以直接获得某个元素
eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
eggs[0]
这段代码的返回值就是"鸡蛋"
B.如果想要访问列表中最后一个元素,可以使用 len()函数获取该列表的长度(元素个数),再减 1?就是这个列表最后一个元素的索引值:
eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
eggs[len(eggs)-1]
?这段代码的返回值就是“铁蛋”
去掉len函数也会有同样的效果,我们可以利用索引值为负数,表示从列表末尾反向索引:
eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
eggs[-2]
那么这段代码的返回值就是“鹅蛋”
C.如果一个列表中我们要将两个元素位置进行调换,我们可以这样操作:
eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
temp = eggs[1]
eggs[1] = eggs[3]
eggs[3] = temp
eggs
?那么这段代码的运行结果就是["鸡蛋","铁蛋","鹅蛋","鸭蛋"]
这里的temp只是一个临时变量,避免相互遮盖,那么我们还可以使用另一种更为简单的方法去实现这个功能:
eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
eggs[1], eggs[3] = eggs[3] , eggs[1]
eggs
?D.如果进行一种抽奖功能的程序,我们就可以利用“奖项/参与者”放入列表里面,然后配合random模块实现即可
import random
prize = ["鸡蛋","铁蛋","鹅蛋","鸭蛋"]
random.choice(prizes)
这段代码就回返回列表当中的任意一个数据
random中的choice()方法可以从一个非空序列(如列表)中随机获取一个元素。
E.上文我们提到过,列表当中还可以有一个子列表,所以我们如果要获取子列表当中的一个元素,就可以使用两次索引
eggs = [鸡蛋"","铁蛋",["天鹅蛋","企鹅蛋","加拿大蛋"]"鸭蛋"]
eggs[2] [2]
那么这段代码的运行结果就是“加拿大蛋”
4.从列表当中删除
删除有三种方法可以实现:remove()? pop()? del
A. remove()方法需要指定一个待删除的元素:
eggs
["鸡蛋","铁蛋","鹅蛋","鸭蛋"]
eggs.remove("铁蛋")
这段代码的运行结果就是eggs["鸡蛋","鹅蛋","鸭蛋"]
使用remove删除一个元素的时候,我们并不需要知道这个元素具体的位置,但是如果指定元素不再这个列表当中,程序就会报错
B.pop()方法是将列表中的指定元素”弹“出来,也就是取出并删除该元素的意思,它的参数是一个索引值:
eggs = ["鸡蛋","鹅蛋","鸭蛋"]
eggs.pop(1)
‘鹅蛋’
那么这段代码的运行结果即使["鸡蛋","鸭蛋"]
如果你的opo()不带参数,那么pop()方法默认是弹出列表当中的最后一个元素。
eggs = ["鸡蛋","鸭蛋"]
eggs.pop()
"鸭蛋"
那么这段代码的运行结果就是”鸡蛋“
3.del语句
注意:它是一个python语句,而不是del的列表方法,或者是BIF(内置函数)
del eggs[0]
那么这段代码的运行结果就是? [? ]
del不仅可以用来删除列表当中的某些元素,还可以直接用来删除整个变量
5.列表切片
切片语法的引入(slice):
就是用冒号隔开两个索引值,左边是开始位置,右边是结束位置。
像这样:list[2:5]
注意:结束位置上的元素是不包括的,比如list[2:5]他就是不包括第五个索引值,只有2到4的索引值
如果省略了开始位置,就默认索引为0,如果省略了结尾位置,默认到结束。
直接举个例子:
list1 = ["钢铁侠","蜘蛛侠","蝙蝠侠","绿灯侠","神奇女侠"]
list2 = []
记住:这个是没写完的,这个是需要补的!
注意:列表切片并不会修改列表自身的租车给结构和数据,它其实是为列表创建一个新的拷贝(副本)并返回。
6.进阶玩法
列表切片其实还剋接受第三个参数,其·代表的是它的步长,默认值是1,下面将步长修改成2,就会得到这样的结果
list1 = [1,2,3,4,5,6,7,8,9]
list1[0:9:2]
那么这段代码的返回值就是[1,3,5,7,9]
其实该代码可以直接写成:list1[::2]效果是一样的
如果将步长设置成-1,就会变成这样:
list1[::-1]
[9,8,7,6,5,4,3,2,1]
记住,将步长设置为-1,就是将整个列表反过来了,
上面这些列表切片操作都是获取列表加工之后切片的拷贝,并不会影响到原有列表结构:
list1 = [1,2,3,4,5,6,7,8,9]
list1[::-2]
[9,7,5,3,1]
list1
[1,2,3,4,5,6,7,8,9]
但是如果将del列表用于列表切片,那么结果是这样的:
del list1[::2]
llist1
[2,4,6,8]
del直接作用于原始列表。
7.一些常规操作符:
?
?
?
?
?
?
?
?