沐枫凌-python 新手教学(7-1)--列表

这一节我要给大家讲的是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

由此可以看到可以依次将每一个元素按顺序赋值给变量

那么列表就讲到这里了,接下来还有元组,集合需要去了解了解,但由于都是序列,所以差别不是特别的大,关键是自己要去多练习哦!!










猜你喜欢

转载自blog.csdn.net/weixin_42582160/article/details/80896837