列表与元组
1.列表与元组 list列表。
(1.1)
定义:储存各种数据类型。
特征:[ ]并用 ,分割。如:[1,2,3,4](逗号不占一个下标值)
命名规范:单字母和小驼峰法命名。但是一定不能用list,因为list是一个内置函数,是用来转类型的,把其他类型转换为列表。
特例:list=[1]
(1.2)
特性:列表中的数值是可以修改的,但是字符串的数值是不能修改的。
现在,我们先来创建一个列表。操作如下:
#创建一个列表:
li=[1,2,3]
print(li)——>输出:[1,2,3]
print(type(li))——>输出:<class 'list'>
当然,如何创建一个空列表呢?
li=[ ]
print(li)
print(type(li))
(1.3)操作
增删改查:
列表切片与长度
例如:a=[1,2,3,4,5] #输出偶数
print(a[1:4:2])或print(a[1::2])——>因为要输出偶数,所以最后一位可以不写,默认取到最后一位。
查询列表长度:print(len(变量名))
例如:a=[107,1028,920,1106,1105,1104]
print(len(a))
列表里面的逗号是不占位的。只输出列表中的元素长度——>6
(1.3.1)列表查询
count(统计)——>统计列表中相同的元素的个数。
例如:b=[1,2,3,4,5,1,2,5,7]
print(b.count(1))或print(b.count(2))或print(b.count(5))
查询列表b中相同元素的个数,并将它们统计出来。
index(数值),是从左往右查询下标值,查到第一个数值就会返回第一个数值的下标值,并停止查询。
如果没有就会报错,并告知不在列表中。
例如:a=[1,2,3,4]
print(a.index(3))
输出的这个下标值是3的,因为下标值都是从1开始。
再例如:b=[1,2,3,4,5,1,2,3,4]
print(b.index(3))
print(b.index(100))
3在列表中,而100却不在列表中,所以报错,这是个良好Bug。
1.3.2成员运算符.
in与not in——>(数值是否在某个序列中,返回bool值,若存在,则返回True。若不存在,则返回False)
a=[1,2,3,4,5]
print(1 in a) 或 print(100 not in a)
当然,如果不存在,则……
输出False
1.3.3列表增加
append( ):就是在列表尾部增加数值,就是追加数值的意思。
例如: a=[1,2,3,4]
a.append(5)
print(a)
我们看到数字5添加在列表的后面
再比如a=[1,2,3,4]
print(a)
a.append("梓良老师")
那么,列表中是否可以添加列表呢?
a=[1,2,3,4,'梓良老师']
a.append([1,2,3,4])
print(a)
明显看到新的列表添加进去了
insert(插入下标值)——>可以插入到固定的列表下标。
格式:insert(下标值,要插入的数值)
例如:a=[1,2,3,5] #在3和5之间插入数字4
a.insert(3,4)
print(a)
这里我们可以看到,4代替了5的下标值所属的位置。(5的下标值是“3”)
如果要插入开头位置,则输入:a.insert(0,0)
如果加在末尾,用append追加。
拓展:inset如果插入位置大于下标长度,则默认插入最后一位。
extend( )
extend( ):可以按照添加的序列逐个添加到目标列表中。
格式:
变量名.extend(添加的序列)
例如:a=[1,2,3,4]
a.extend([5,6,7])
print(a)
我们可以发现,加入列表的元素是逐个添加的,并不是像上面那样将整个列表加入这个列表中。
再例如:b=[1,2]
b.extend("hello world")
print(b)
看,对于字符串则是将它一一拆开作为单独的元素并逐一添加到列表b中。
1.3.4列表删除
pop( ):是标识删除具体的下标值,如果没有具体的下标值,那默认是最后一个。
例如:a=[1,2,3]
a.pop( )
print(a)
那如果有具体的下标值呢?
例如:
b=[1,2,3,4,5]
b.pop(3)
print(b)
4被删除了。
remove( )
它是移除填写特定值,如果是相同值则会匹配移除第一个值,如果列表中没有数值就会报错。
例如:x=[1,2,2,3,3,4]
x.remove(2)
print(x)
看,列表x中的2被移除了一个。
又例如:x=[1,2,3,3,5]
x.remove(100)
print(x)
列表x中没有100,所以报错。
———————————————————————————————————————————
del:这是一个函数,作用是删除一个或连续多个值(切片)
例如c=[1,2,2,3,3,4]
del a[2:4]
print(a)
列表c中最右边的2下标值为2,所以删除。而最右边的3的下标值为4,为开区间,所以不删去。
clear( ):清除列表所有值——>数值
例如: a=[1,2,3,4,5]
a.clear()
print(a)
此时输出的就是一个空列表
1.3.5列表更改
格式:列表名[下标值]=数值
例如:a=[1,2,4,4]
a[2]=3
print(a)
此时,我们发现列表中的第三个数字4,变成了3。
1.3.6列表的嵌套与取值
a=[[1,2,3],[4,5,6]]
print(a[1])
这里是单独取出列表中的一个列表
那如果我要单独取出列表当中的任意一个元素呢?
例如:取数字6。
则:print(a[1][2])
print(a[1][2])中,前面的1,是指整个列表a中,下标值为1的小列表元素。后面的2指的是小列表中的下标值为2的元素。
2.元组(tuple)
2.1定义:元组和列表类似,可以储存多个数值,类似我们的保险箱。
注:不能用tuple( ),因为它也是一个强制性转化函数。
格式:元组名=(数值1,数值2)
创建一个元组:
a=(1,2,4)
print(a)
print(type(a))
2.2特性:元组是不可以修改内部值(也不能增加、删除某个值)。
2.3元祖的操作
切片和函数长度
a=(1,2,3,4)
print(a[0::2])
元组的拼接
a=(1,2,3)
b=(4,5,6)
c=a+b
print(c)
元组的查询
a=(1,2,3,4)
print(a[2])
输出3,因为该元组的下标值是2
元祖的删除——>与del一样。
但是,元祖的删除是物理删除,即删除内存地址。
例如:a=(1,2,3,4)
del a
print(a)
元组与列表的互相转换。
a=[1,2,3,4]
print(a)——>[1,2,3,4]
print(type(a))——><class 'list'>
a=tuple(a)
print(a)——>(1,2,3,4)
print(type(a))——><class 'tuple'>