这一节我要给大家讲的是python中的列表。
那么列表是什么?
我们先来了解一下序列>>>
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
那么列表就是序列其中的一项,下面我将为大家呈现列表的例子
[1,23,521,67,-1,-4] #这是一个包含了数字的列表
['hello','asd','ewaz'] #这是一个包含了字符串的列表
['asd',12,dad] #这是一个有着字符串,数字,变量的列表(前提是变量已被赋值)
我们可以看出,一个用中括号 [ ] 括起来的各个元素共同构成了一个列表,列表在python中英文为List
上面的列表中像 23 'hello' dad 这样的我们统一称之为"元素" ,元素与元素之间用”,“逗号隔开
当然,列表中的元素,支持任何可运算的,不出错的代码,如下
[123+123,pow(8,2),'asd'+'asd',23<32] #pow(8,2)是进行8**2运算
结果是
[246, 64, 'asdasd', True]
提取列表的元素
我在上面讲到过,每一个元素都有自己的序列(位置),第一个元素的序列是0,第二个元素的序列是1………………
我们可以通过输入元素的序列号来提取该列表内对应位置的元素,例
list1 = ['name','age','sex']
print(list1[0])
print(list1[2])
结果如下
name
sex
我们可以看到,输出了列表中的第0个元素和第2个元素
是不是觉得和字符串的切片有点像
没错,原理基本上是一模一样的,只不过是字符串在切片的时候是将一个字符视为一个元素,而列表内的元素可以是各种各样的
列表的切片
既然和字符串的切片方式类似,有就是说可以通过[x : y](记住!列表的切片也是左闭右开)截取一长段咯?没错,下面是例子
list2 = [1,2,3,4,5,6,7,8,9]
print(list2[0:5]) #截取0到4的元素
print(list2[-5:-1]) #截取-5到-2的元素
print(list2[3:]) #截取3到正无穷的元素
print(list2[:-2]) #截取负无穷到-3的元素
print(list2[:]) #截取全部元素
结果如下
[1, 2, 3, 4, 5]
[5, 6, 7, 8]
[4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
!!!说到截取元素,有一点十分重要,假设你有一个列表有3个元素[1,2,3],最后一个元素的位置是2,但你截取了位置为3的元素,这样会导致程序报错!!! 例子:
print(['mom','dad','i'][3]) #该列表中只有3个元素,最前面的位置是0号,最后的位置是2号
结果是
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
print(['mom','dad','i'][3])
IndexError: list index out of range
翻译一下>>>IndexError: list index out of range>>>索引错误:列出超出范围的索引
这就说明了,不论是提取列表元素的时候,还是对列表切片的时候,都不能超出范围(字符串的切片也是一样的)
列表内元素的更新
与字符串不同的是,列表内的元素可以手动更新,例
list4 = [1,2,3,4,5,6,7,'what',9,10]
list4[7] = 8
print(list4)
结果是
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我们可以看到列表内的7号位置的元素'what'被替换成了8,当然我们也可以大范围的更新,例
list5 = [1,2,3,4,'what','it','is',8,9]
list5[4:7] = [5,6,7]
print(list5)
结果是
[1, 2, 3, 4, 5, 6, 7, 8, 9]
列表的数学运算
神奇了我的爹!!列表也可以进行运算!!
没错,到后面好多东西其实都可以进行数学运算!
下面给列表之间的运算例子
list7 = [1,2,3]+[4,5,6]
list8 = ['hello']*5
print(list7)
print(list8)
结果是
[1, 2, 3, 4, 5, 6]
['hello', 'hello', 'hello', 'hello', 'hello']
!!!注意了,和字符串的运算一样,不能减法运算,不能乘方运算,不能不同类运算!!!
查看列表内的元素个数
假如有好长一段的列表,里面有好多的元素,不好数怎么办?-----没事,我们可以使用len()函数解决
print(len(['asd','asd','asf','gaa',12,41,'12']))
结果是
7
意思是有7个元素
也可以用在查看一段字符串内有几个字符
print(len('abcdefghijklmn'))
结果是
14
列表内元素的添加与删减以及其他函数操作
我们除了使用列表的加法之外可以这样做,
我们先要在列表的最后面插入一个元素,可以使用 list.append()函数
#在最后面添加进一个元素
list6 = [1,2,3]
list6.append(4)
print(list6)
想要删除某个列表中的元素可以这么做 del list[位置]
list9 = [1,2,3,4,5]
del list9[3]
print(list9)
其他的功能我就直接用一张表显示出来好了
list.append(元素) | #把一个元素添加到列表的最后面 |
list.extend(列表名) | #把一个指定列表添加到该列表后面 |
list.insert(位置,元素) | #把一个元素添加到该列表的指定位置 |
list.remove(元素) | #删除该列表中的第一个该名称的元素 |
list.pop(位置) | #删除该位置的元素并返回该元素的值 |
list.clear() | #删除该列表所有的元素 |
list.index(元素) | #返回该列表中第一个该元素名的位置 |
list.count(元素) | #返回该元素在该列表中出现的次数 |
list.sort() | #对该列表中的元素进行排序 |
list.reverse() | #倒排该列表的元素 |
list.copy() | #列表的浅复制 |
还记得我们之前学的“in”关键字吗
in 可是使用于列表内元素的检测, 通式为" 元素 in 列表 ",例
print('hello' in ['hello','hi','hey']) #显示'hello'是否存在于列表中
结果为True,表明存在(当然,不存在的话就返回False)
True
然后说到批量赋值时,我们可以用我们之前学的for循环实现,例
for i in ['hello','hi','hey','ok']:
print(i)
结果是
hello
hi
hey
ok
由此可以看到可以依次将每一个元素按顺序赋值给变量
那么列表就讲到这里了,接下来还有元组,集合需要去了解了解,但由于都是序列,所以差别不是特别的大,关键是自己要去多练习哦!!