1、列表
定义:能装对象的对象
在python中使用[] 来描述列表,内部元素用逗号隔开,对数据类型没有要求。
列表存在索引和切片,和字符串的操作是一样的
2、列表相关的增删改查操作
添加:
1、append() 追加,在后面添加
2、insert(位置,元素),效率相对较低
3、extend( ) 迭代添加,把传递进去的参数进行迭代,把每一项添加到表的末尾(如果参数是字符串,将会把每个字符当成一个元素迭代添加到列表中)
lst = ['qian','钱','money','doll']
lst.extend('冷暖自知')
lst.extend(['力量','盟友'])
print(lst)
# ['qian', '钱', 'money', 'doll', '冷', '暖', '自', '知', '力量', '盟友']
删除:
1、pop() 默认从后往前删除 pop(索引) 根据索引删除
2、remove(元素) 根据元素删除 ,当元素不存在时,会报错
3、del lst[start:end:step] 根据索引或者切片删除
4、clear() 清空
修改:
1、索引修改
2、ls[索引] = 元素
注:报错:IndexError: list assignment index out of range 索引下标越界
迭代更新
lst = ['大树','白云','小鸟','蝴蝶','蜜蜂']
lst[3:] = '小动物'
print(lst)
# ['大树', '白云', '小鸟', '小', '动', '物']
切片更新
lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰']
lst[3:5] = ['星星']
print(lst)
# ['大叔', '白云', '小鸟', '星星', '苍鹰']
如果步长不为1,元素的个数必须要和切片的个数一致不然会报错
ValueError: attempt to assign sequence of size 1 to extended slice of size 2
lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰']
lst[1:4:2] = ['宇宙','黑洞']
print(lst)
# ['大叔', '宇宙', '小鸟', '黑洞', '蜜蜂', '苍鹰']
查询:(列表是一个可迭代对象)
for 循环
lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰'] for item in lst: # lst 是 item 中的每一项 print(item)
for i in 123:
print(i)
报错:TypeError: 'int' object is not iterable
3、列表的嵌套
多个列表互相嵌套(降维操作)
4、列表的其他操作
1、count(xxx) 计数 查看xxx 元素出现的次数
2、 sort() 排序(升序) sort(reserve = True) 倒序
3、reverse() 将列表元素翻转过来
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.reverse()
print(li)
# ['wenzhou', 'barry', 'ritian', 'WuSir', 'alex']
4、len() 列表长度 查看列表中元素的个数
查看list 的其他操作 list 按住ctrl +鼠标左键
5、元组
能装对象的对象,不可变,一旦确认好,不可更改。 用()表示,只读列表
注:
tu = tuple() #空元组 固定写法
tu = (1) 不是元组 print(type(tu)) # <class 'int'>
tu = (1,) 元组中只有一个元素 #< class 'tuple'>
好习惯:写元组的时候末尾加个逗号
元组也是可迭代的 ,可以使用for循环
tu = ('规格','面积','大小',['正方形','圆形'])
tu[3].append('长方形')
print(tu)
# ('规格', '面积', '大小', ['正方形', '圆形', '长方形'])
# 元组没改,改的是元素内部,没有改变元组的指向,所以不报错
6、range 数数
range(n) [0,n)
range(m,n) [m,n)
range(m,n,p) [m,n) 每隔p取一个
lst = ['你是水','我是冰']
for i in range(len(lst)):
print(i , lst[i])
# 0 你是水
# 1 我是冰