列表和元组:
就是可以用一个变量来表示很多个数据。
列表和元组,大部分的功能都是差不多的,但是有一个功能是非常明显的区别:
列表是可变的,创建好了之后可以改。
元组是不可变的,创建好了之后,改不了,要想改,只能丢弃旧的,搞个新的。
列表的创建
1,直接使用字面量来创建。
a=[ ]
2,使用list()来创建
b=list()
3,可以在创建列表的时候,在[ ]中指定列表的初始值。
4,可以在同一个列表里放不同类型的变量
a=[1,'hello',True,[4,5,6]]
5,访问下标:
列表里面可以管理很多元素,通过下标访问的方式来获取到列表中的元素,用到一个下标访问运算符吗[ ],中间写的这个整数,简称“下标”或者“索引”。
(下标从0开始计数)
6,使用下标来修改元素
7,超出下标有效范围,就会出现异常
由于下标是从10开始的,对于列表来说,下标的有效范围,从0到长度-1
当我们下标超出有效范围的时候,尝试访问,就会出现异常。
8,可以使用内建函数len来获取列表的长度(元素个数),和字符串类似(len可以传字符串,列表,元组,字典,自定义的类==》动态类型)
9,python中的下标,其实还可以写成负数。
例如写成-1,其实等价于len(a)-1
切片操作:
通过下标操作是一次取出里面的第一个元素。
通过切片,则是一次取出一组连续的元素,相当于得到一个子列表。
切片操作的基本使用:
取掉下标为一,一直到下标为3的元素。
包含一,不包含三[1,3)
1,使用切片的时候,省略边界。
省略后边界,意思是从开始位置,一直取到整个列表结束。
省略前边界,意思是从列表的0元素开始取,一直取到结束的后边界。
切片的下标,也可以写成负数,也就是长度减一。
还可以把边界和结束边界,都省略掉,得到的还是列表自身。
切片操作是一个比较高效的操作,进行切片的时候,只是取出了原有列表的一个部分,并不涉及到“数据的拷贝”,假设有一个很大的列表,进行切片,切片的范围也很大,即使如此,切片的操作仍然非常高效。
切片操作,还可以指定”步长“,range
1就是步长。步长也可以是负数,当步长为负数的时候,意思就是从后往前来取元素。
当切片中范围超出有效下标之后,不会出现异常,而是尽可能把符合要求的元素给获取到。超出则全部打印。
遍历列表元素:
遍历:把一个列表里面的每个元素,都依次的取出来,并进行某种操作。
elem:代表了列表的每个元素。(元素),不可以修改值。
2,使用for循环遍历,通过下标的方式。
可以修改值。
3, 使用while循环,通过下标遍历。
新增元素:
1,使用append往列表最后新增,
此时的append是搭配列表对象a,来一起使用的,而不是作为一个独立的函数。
type,print,input,len,自定义函数都是独立的函数。
这种要搭配对象来使用的函数(function),也叫做“方法”(method)
在python中,对象,就可以视为是“变量”。
2,还可以使用insert方法,往列表的任意位置来新增元素。
如果超出最大范围,则之间补充到最后面。
查找元素:
1,使用in来判定某个元素是否在列表中存在。(需要每个元素遍历一遍)
在则返回true,不在则返回false
也可以取反,使用not。
2,使用index方法,来判定,当前元素在列表中的位置,得到了一个下标。
如果1在列表中,则返回元素下标。
如果不在,则直接报错。
3,删除元素
1,使用pop删除列表中的最末尾元素。
2,pop也可以删除任意位置元素。
pop的参数可以传一个下标过去。
3,使用romove方法,可以按照值来进行删除。
列表的拼接:
直接拼接
2,使用extend来进行拼接,这个拼接是把后一个列表的内容拼接到前一个列表里面。
b将列表的内容拼接到a里面了。
如果用一个变量接收a的值,则会返回None(这是一个特殊的变量的值,表示“啥都没有”)
extend方法,其实是没有返回值的,拿一个变量来接受一个没有返回值。
3,还可以使用+=来进行拼接。
使用了数据拷贝。
相对于extend多了三步操作
1,多了构造新的大列表的操作。
2,多了把大的列表的值赋给a里面。
3,多了把a的旧值释放的操作。
元组的操作:
#1,创建元组
a=()
b=tuple()
print(type(a))
print(type(b))
#2,创建元素的时候,指定初始值。
a=(1,2,3,4)
print(a)
#3,元组中的元素也可以是任意类型的
a=(1,'hello',[],True)
print(a)
#4,通过下标来访问元组来访问元组的元素,下标也是从0开始,到len-1结束。
a=(1,2,3,4)
print(a[1])
#如果为负数,则取倒数的,若超出则报错。
print(a[-1])
#通过切片来获取元组中的一个部分。
print(a[1:3])
#6,也同样可以使用for循环等方式来进行遍历数组元素。
a=(1,2,3,4)
for elem in a:
print(elem)
#7,可以使用in来判定元素是否存在,使用index查找元素的下标。
a=(1,2,3,4)
print(3 in a)
print(a.index(1))
#8,可以使用+来拼接两个元组。
a=(1,2,3)
b=(4,5,6)
print(a+b)
元组只进行“读”,操作,不能支持“修改”类操作。
当进行多元赋值的时候,其实本质上是按照元组的方式来进行工作的。