4.0 可变类型和不可变类型
可变类型概述:
即可对该类型对象中的元素做修改,如列表、字典
从内存地址来理解:
类型对象中的个别元素被替换则储存位置不会改变位置
但是如果整个类型对象被替换则会改变位置
不可变类型概述:
即对类型对象所保存的元素不允许修改,只能通过整体赋值来修改,但此时实际上就是创建了一个新的不可变类型对象,而不是修改原对象的值。
如数字、字符串、元组等
从内存地址来理解:
如果类型对象的值被替换则内存位置则会被替换
此外,多个类型对象的值如果相等则内存位置相等
4.1序列的基本操作
4.1 创建列表和拼接列表
创建列表方式:
1.将一个元素赋值为列表
格式:
ls1=[1,23,34]
2.使用内置函数list()
格式:
ls1=((1,234,21))
3.将字符串用split参数分割
格式:
str.split(str="", num=string.count(str)).
str为字符串,num为切割次数,默认为切割所有
拼接列表格式:
ls3=ls1+ls2
也可以列表重复
ls2=ls1*数字
4.2 复制列表元素
当列表中无作为元素的列表时:
复制方式 1:
ls1=ls2
这种方法会绑定两个列表,二者内存地址相同
给其中一个列表赋值时另一个也会改变
复制方式 2:
ls2=ls1[:]
这种方式会使两个列表互相独立,内存地址不相同
给其中一个赋值时另一个并不会改变
当列表作为元素时:
想对这个元素进行复制时
复制方式 1:
ls1=ls2 或
ls2=ls1[:]
这样复制的元素和原元素保持一致,包括内存位置和赋值。
复制方式 2:
使用copy模块中的deepcopy函数
格式:
import copy
ls2=copy.deepcopy(ls1)
这样会保持复制出元素和原元素独立
4.3 列表元素的查找、插入和删除
查找概述:
通过列表index方法可以根据定值查找第一个匹配的列表的元素的位置
格式:
ls.index(x)
其中ls为所要查找的列表,x为所要查找的元素,返回值为这个元素第一次出现的位置。
插入概述:
通过列表中的insert方法可以将一个元素插入到列表的指定位置
也可以通过append方法,在列表最后添加新元素
格式:
ls.insert(index,x)
或
ls.append(x)
删除概述:
通过del函数将特定元素或多个连续元素删除,将其赋为空列表。
格式:
删除单个:del ls[数字] 或 ls[数字]=[]
删除多个:del ls[数字:数字] 或 ls[数字:数字]=[]
4.4 列表元素的最大值、最小值、出现次数和列表长度
最大、小值概述:
使用max和min可以分别获取一个列表中最大元素和最小元素
格式:
max(ls)
min(ls)
此外:如果列表中有除了数字以外的元素,则可以先把列表中的数字单独取出来,再做成一个列表,再找最大、小值
统计元素次数概述:
count可以统计某个值在列表中出现的次数,其作用是统计值x在列表ls中出现的次数。
格式:
ls.count(x)
计算列表长度概述:
len方法可以获取一个列表中包含的元素数量(即列表长度)
语法格式:
len(ls)
4.5 列表元素排序
概述:
使用sort方法可以对列表中的元素按照指定规则进行排序。
格式:
ls.sort(Key=None,reverse=False)
其中key接收一个函数,这个函数会返回数值作为排序时比较的依据。
reverse是用来指定排序顺序是升序还是降序。
false,默认值,升序。 true,降序。
注意:当原列表仅包含数字时,可以不带key函数
直接用这个语句即可,不需要再赋值
4.6 元组的操作
创建元组:
方式1:
使用()创建元组对象,直接在()中添加元素即可
方式2:
使用tuple函数创建
格式:
t=tuple(1,'one','@')
注意:在创建只有一个元素的元组时,必须要在元素后加上逗号
拼接元组:
拼接运算“+”或者重复运算“ * ”
格式:
t=t1+t2或t=t*3
找最大、小值:
使用max()或min()
格式:
max(t) min(t)