列表可以把任意python数据类型组合到一起,是python中最通用和最常用的数据类型。
特点:
- 有序化,列表的元素被有序地组织在一起
- 可以包含任意类型对象
- 列表的元素可以通过索引访问,可迭代,可遍历
- 支持自动解包
- 列表可以任意嵌套,即可以包含其他列表作为子列表
- 列表的大小是可变的
列表是可变对象,即列表元素可以增加、更改和删除
列表的创建
在python中,可以通过list()函数和方括号[]创建列表。创建空列表时,二者结果一致。
- list()函数:只能输入一个可迭代对象,然后把可迭代对象的元素加入列表
- 方括号[]:可以输入多个对象,把输入对象作为元素整体加入列表
list1 = list()
list2 = []
list3 = list("hello world!")
list4 = ["hello world"]
索引以及切片操作同字符串
字符串的基本知识
列表的常用方法
列表的操作方法: 1,del关键字 2,append方法 append函数用于向列表末尾添加元素 3.insert方法 insert 函数用于向列表中插入元素 insert 函数第一个参数是插入的位置,第二个参数是要插入的对象 4.clear函数用于将列表清空 5,remove函数 用于从列表中移除元素,若列表有重复元素,remove函数只会移除匹配到的第一个 6,pop函数 用于移除列表中指定位置的元素,并返回要移除的元素 在默认情况下,移除列表中最后一个元素 7.index函数 index函数用于返回所匹配的元素的索引 第一个参数:待查找的对象 第二个参数:查找的起始范围 第三个参数:查找的结束范围 8,reverse函数 用于将列表反向排列 ==[::-1] 9,extend方法 extend函数用于在列表的末尾添加另一个列表 与append函数相比,extend函数可以一次添加多个元素 (使用extend函数和列表加法的结果是一样的,但是extend函数会将另一个列表并入当前列表,而列表加法是返回新的列表,extend更节约空间) 10,cope函数 用于创建列表的副本 11,sort函数 sort函数用于将列表排序 12,count函数
- 添加元素: append 追加 类似排队 extend函数用于在列表的末尾添加另一个列表 删除: pop,remove,clear,del del : del list1于list1.clear() clear操作后原列表为空,del操作后原列表不存在 pop(index):根据下标删除元素,下标在写的时候注意不要越界,index不写默认删除最后一个 remove(element):根据元素名称删除,如果删除的元素列表中不存在则报错,且删除的只有第一个
- 修改 [1,2,3,4,5] insert:元素占了位置,其他元素只能后移 index:根据元素找该元素的位置下标,返回值是下标位置 insert 插队 number.sort(reverse = True) 降序 number.reverse() 对原来列表倒叙输出,单纯翻转,无排序
- 查找 1,元素 in 列表: 2,列表.index():返回元素的下标位置,如果没有此元素则报错 3,列表.count() 返回整数,不存在则返回0
list1 = [1,3,4,"酸奶","酸奶","酸奶",2,"ww","酸奶","孙女","酸奶","酸奶",1,1]
list2 = list1.copy()
list3 =list1.copy()
list4 = list1.copy()
list5 = list1.copy()
list6 = list1.copy()
"""
#remove删除多个元素
for i in list1:
if i == "酸奶":
list1.remove(i)
#如果有连续的,会漏删,因为删除一个下标会改变
for i in list1:
if '酸奶' in list1:
list1.remove()
"""
for i in list1:
if i == '酸奶':
list1.remove(i)#方法一
print(list1)
for i in range(len(list2)):
if list[i] == '酸奶':
list2.remove(i) #方法二
i-=1
print(list2)
#妙
for i in list3[::-1]:
if i == '酸奶':
list3.remove(i) #方法三
print(list3)
#死
for i in list4:
if '酸奶' in list4:
list4.remove('酸奶') #方法四
print(list4)
n=0
while n<len(list5):
if list5[n]=='酸奶':
list5.remove('酸奶') #方法五
else:
n+=1
print(list5)
t = 0
for i in list6:
if i == "酸奶":
list6.remove(i)
list6.insert(0,str(t)) #方法六
t+=1
for i in range (t+1):
list6.remove(list[0])
print(list6)
列表的拷贝
- 引用拷贝
- 浅拷贝
- 深拷贝
引用拷贝即list1 = list2,二者关联到同一列表对象上
浅拷贝即list2 = list1.copy(),把新建的列表关联到原列表的元素对象上,但不会在内存中新建一份原列表的元素对象。
深拷贝由copy模块的deepcopy()函数实现,当修改new_list列表的元素时,old_list列表的元素不会受到影响
元组
元组是不可变序列,即元组一旦创建,就不能对其元素进行增删改
元组也是一种数据容器,使用小括号"( )"表示, 其使用场景与列表相似,这意味着能使用列表的地方基本可以使用元组,,包括列表推导式,切片等操作。 列表与元组的唯一区别是元组是不可变的
特点:
- 元组在运行速度和空间上都优于列表
- 若已经知道哪些数据不必更改,用元组比用列表好,可以保护数据。
- 元组的元素可以通过索引访问,可迭代,可遍历。
- 元组支持自动解包
- 元组一旦创建,其大小不可变
- 元组是不可变对象,一旦创建,就不能对其元素进行增删改
- 一个方法或函数要多个返回值时,元组是个不错的选择
python中的元组与列表相似,不同之处在于元组的元素不能修改(增删改) 元组使用小括号(),列表使用方括号[] 元组中只有一个数据要写逗号才是元组 (1,) 下标和切片 字符串,列表,元组 ---->注意下标越界 方法: count() index() 关键字: in ,not in for ……in while 转换: list(tuple) tuple(list)
创建元组
- tuple()函数:只能输入一个可迭代对象,然后把可迭代对象的元素加入元组
- 小括号():可以输入多个对象,把输入的对象作为元素整体加入元组
小括号()创建元组的时间远远少于用tuple()函数创建元组的时间,元组的创建时间优于列表的创建时间,元组的执行效率优于列表
关于元组,列表,字符串的共同操作 len(),max(),min()