list1 = [] #创建一个空列表
list2 = [1, 2, 3, 4, 5, -1] #创建一个数字型列表
list3 = [“a”, “q”, “w”, “s”, “d”, “f”, “e”] #创建一个字符型列表
list4 = [“how”, “are”, “you”, “I am”, “find”, “Thank”, “you”] #创建一个字符串型列表
list5 = [1, “a”, “hello”, “?”, list1, list4] #创建一个混合数据类型列表,列表元素可以是任意类型,包括列表类型
这几种创建列表的方式都是正确的,即列表中元素的数据类型不一定要相同。
value = list3[3] #依据索引查找元素的值,序列的索引从0开始,因此[3]实际上是第四个值,value等于s
list4[2] = “you ?” #将列表list4中索引位2(第三个元素)的值修改为“you ?”
列表本身有一个append()方法来增进元素,使用append()方法时会在列表的最后增加一个值
listnum = [1, 2, 3]
listnum.append(4)
listnum这个列表中就变成四个元素了,例如:
2、删除
删除列表中的元素有几种不同的方法
del命令
del命令可以删除列表中的某一个元素或者整个列表
del listnum[2] #删除列表中索引为2的元素
del listnum #删除整个列表
pop命令
pop命令删除列表中的最后一个元素并返回列表中的值
listnum = [1, 2, 3, 4]
value = listnum.pop() #最后一个元素将被删除,并返回删除的元素的值4。
remove命令
删除列表中第一个匹配的值
listnum = [1, 2, 3, 4, 2]
listnum.remove(2) #第一个2将被删除,列表成为了[1, 3, 4, 2]
3、改
重新赋值
listnum = [1, 2, 3]
listnum = [“aaa”, “bbb”, “ddd”] #给列表重新赋值
修改元素
可以通过索引来单独修改列表中某个元素的值
listnum[2] = 4 #列表中索引为2的元素的值将被修改为4
4、查
通过索引来找值
value = listnum[2] #查找索引为2的元素的值,索引号放在方括号里。
通过值来找索引
index_num = listnum.index(3) #通过索引自带的index()方法招到匹配的第一个元素的索引
判断是否存在某个值
listnum = [1, 2, 3]
3 in listnum #判断列表listnum中是否有3这个值,如果有返回True, 如果没有返回False
result = 3 in listnum #将判断结果返回给一个值
三、列表的切片操作
切片就是提取序列的一部分,切片通过索引来实现。
1、通过索引切片
通过索引切片,也就是按照从0到1、2、3直到n-1的索引进行切片,例如:
listname = [“I”, “am”, “a”, “Pupil”, “.”]
截取索引2和索引3的元素:
list34 = listname[2:4]
注:通过索引进行切片时,切片中的第一个索引代表切片后开始的第一个索引,最后一个索引代表切片后剩余元素开始的第一个索引,即切取的片段不包含最后一个索引的元素,查看效果:
切片的长度等于前后索引的相减。
如果后面的索引越界(超过列表的最大索引),则截取从切片开始向后的所有元素:
2、通过带负值的索引切片
我们知道列表中的元素不仅可以从前向后按照0、1、2、3…n-1的方式设置索引,也可以按照从后向前的顺序按照-1, -2, -3…-n的方式设置索引,因此,列表中切片的索引也可以包含负值,只需要第二个索引所代表的元素位于第一个索引代表的元素的后面即可,例如:
3、通过步长切片
切片不仅可以切取连续的序列,也可以每隔几个元素切取一个元素,这个间隔的数字就是步长。在使用步长切片时步长的长度值写到最后即可,例如listname[0:9:2],查看示例:
即使你将切片的结束元素写成列表的结束元素,依然不会切取列表的最后一个元素,此时我们可以将切片结束元素(切片的第二个值)的索引设置为空,或者写上大于切片长度的值即可。如listname[1::2]或listname[1:20:2]
4、从后向前(从右向左)切片
不设定步长是不可能从右向左切片的,如果将步长设置为负值,则可以实现从右向左的切片
总结:步长为正数,从左向右且,步长为负数,从右向左切
四、列表的加减乘运算
1、列表的加法
列表的加法非常简单,只需要将列表前后相连组成一个新列表即可
list1 = [1, 2, 3]
list2 = [a, b, c]
listnew = list1 + list2 #listnew的值是[1, 2, 3, a, b, c]
2、列表的减法
列表之间实际上是能够做减法的,只是这种减法需要用到集合的知识,如果你还不了解集合,先看一下集合的基本概念吧
[i for i in list1 if i not in list2]
https://www.cnblogs.com/python-selenium/p/3909175.html 列表的减法
3、列表的乘法
列表的乘法非常简单,只需要让列表乘以某个数字,列表就会重复很多次
listHello = [“hello”, “你好”]
listH3 = listHello * 3 #listHello 的值就是[“hello”, “你好”, “hello”, “你好”, “hello”, “你好”]
二、高级用法
1、嵌套列表
列表中的元素可以是任何合法的数据类型,当然元素的类型也可以是列表,也就是嵌套列表,嵌套列表在人工智能的计算中使用较多,熟练掌握后也非常简单。例如:
mat = [[2, 3, 4, 5], [6, 7]] #这个列表中包含两个元素,每个元素又是一个列表
实际上更常用的方式是永列表定义列表,例如这样:
a = [2, 3, 4, 5]
b = [6, 7]
mat = [a, b] #这实际上定义了一个两行四列的矩阵,其中第二行的第三列和第四列的值为none,也就是没有、不存在的意思。
好,学完了列表,咱们来看一下python的元组操作
欢迎收看:如何自学人工智能