1. 编程学习网 > 编程教程 > Python教程 > python列表

python列表

列表

我们开始正式学习列表。
python的列表是用一对中括号表示,即[],里面可以存放任一种数据类型的元素,中间使用逗号隔开。

1.创建和访问列表


输出结果:
[1, 2, 3, 4, 5] [1, 3.14, 'dotcpp', True]
<class 'list'> <class 'list'>
1 5 3.14 dotcpp
可以看到,创建列表和创建一个变量没有区别,变量名的定义同样要符合标识符,而且在列表b中,我们将整型、浮点型、字符串和布尔型常量放在了一个列表中,系统也没有报错,说明是合法的,也验证了我们前面所说的,第4行输出了a和b的类型,是一个’list’类型,也就是列表。第6行是根据每个元素的索引下标访问列表中的元素。

 2.列表的增删改查操作

列表十分灵活,在定义的时候我们不需要指定长度,因为它可以随时进行增删改查,比如可以使用append()方法在一个列表后面增加单个元素,extend()方法可以在一个列表后面再追加一个列表。

输出结果:
[1, 2, 3, 4, 5, 6]
[1, 3.14, 'dotcpp', True, False, 'python']
注意,append()不能添加多个元素,使用extend()是参数必须是一个列表。
                                                 
在非末尾位置增加元素是使用insert()方法,其中有两个参数,第一个是要插入列表中的位置,也就是索引值,第二个参数是要插入的元素。

输出结果:
[0, 1, 2, 3, 4, 5, 6]
[1, 3.14, 'www', 'dotcpp', 'com', True, False, 'python']
其中第10行代码是在列表a的首位(索引为0的位置)增加一个元素0,第11行代码在列表b索引为2的位置(原本是‘dotcpp’)增加字符串元素‘www’,之后索引值发生了改变,第12行同理。
 
删除元素有两种种方法,分别是remove()和pop()其中remove()方法参数是一个元素,
如果该元素在列表中,那么会将它删除,如果不在会报错,pop()方法参数是索引值,不指定时会默认删除列表的最后一个元素,指定时会删除对应索引值位的元素。


输出结果:
[0, 1, 2, 3, 4, 5]
[1, 'www', 'dotcpp', 'com', True, False]
可以与上述输出结果对比,发现列表a的元素6没有了(15行),列表b的最后一个元素(16行)和元素3.14(17行)没有了。
 
如果想修改列表中的元素,可以直接使用赋值的方法,先根据索引找出元素位置,然后重新赋值即可。比如将列表a的元素2改为元素10,列表b的元素1改为元素0

输出结果:
[0, 1, 10, 3, 4, 5]
[0, 'www', 'dotcpp', 'com', True, False]
 
查找元素可以使用index(),参数为元素,返回出现的第一个该元素的位置索引。也可以使用in和not in判断一个元素是否在列表里,返回布尔值。甚至可以使用我们学过的循环结构和选择结构自己编写条件,寻找列表中的元素。

输出结果:
2
1
True
True
[0, 1]
其中24,25行分别返回元素10和元素‘www’分别在列表a和b中的索引值,26,27行判断元素3和元素’python’是否在列表a和b中,28行先是一个遍历:for i in a,用变量i遍历访问列表a中的每一个元素,后面是判断元素中大于3的i,找到后将其存储在一个新的列表中,如此就从列表a中,将小于3的元素拿出来放在一个新的列表中。

3.列表的切片

列表切片可以获得列表中的部分元素。
使用方法如下:
list[起始索引:终止索引:步长],其中三个参数都是可选的,在不指定的情况下,起始索引默认为0,终止索引默认值为元素个数,步长默认为1.注意列表的分片是对原列表的拷贝,不会改变原列表的值。


输出结果:
[3, 4, 5]
['www', 'dotcpp', 'com']
注意,在使用切片时起始索引的值是包括的,而终止索引的值是不包括的。

4.列表的排序

先看一个方法reverse(),它可以将一个列表翻转,比如将5,4,3,2,1翻过来变成1,2,3,4,5,当然我们不能只靠这个来排序。
真正的排序方法是sort(),其中有三个参数
sort(func,key,reverse)
其中func和key是设置排序的算法和关键字,不指定情况下,sort()默认使用的是归并排序算法,算法课程我们这里不讨论,大家可以去看网站上的数据结构与算法课程。我们只使用默认情况,reverse参数默认是False,也就是说整个函数直接使用是从小到大排序,如果将reverse参数置为True,那么就相同于使用了上面的reverse()方法,将列表翻转,也就实现了从大到小排序。


输出结果:
[56, 0, 9, 100, 78, 1, 2]
[0, 1, 2, 9, 56, 78, 100]
[100, 78, 56, 9, 2, 1, 0]

5.列表的其他操作

使用‘+’可以将两个列表组合,‘*’用于重复列表,del可以删除整个列表,也可以删除其他某个元素。len(list)用来求列表元素个数,max(list)可以找到列表中的最大值,min(list)可以找到列表中的最小值,count(元素)可以查一个元素出现的次数。


运行结果如下:
[1, 2, 3, 3, 4, 5, 6]
[4, 5, 6, 4, 5, 6, 4, 5, 6]
4
3        
4
2
Traceback (most recent call last):
  File "c:\Users\Lenovo\Desktop\text.py", line 10, in <module>
    print(a)
NameError: name 'a' is not defined
其中最后是因为已经用del删除了a列表,因此内存中已经找不到它了,所以会保错。

6.多维列表

多维列表也就是在列表里面嵌套列表,原则上说是可以无限嵌套的,但是我们用不到太高维的,这里以二维为例,其他维类似。
如:



输出结果:
[[1, 2], [3, 4], [5, 5]]
[1, 2] [3, 4] [5, 5]       
1 2 4
可以看到访问二维列表和一维的方法是一样的,只不过里面的每个元素也是一个列表的形式,因此如果要访问具体元素,只需要再加一个中括号,表示元素列表的索引值。
 


本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/Python/2020/0114/515.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休