1.列表 list
- 存放一些数据的容器 比如 衣柜 书包
- 作用:存储一些数据,数据量比较大
- 可以下标 可以切片 可以步长 和字符串的完全一样
lst = [1,2,3]
print(lst) #[1,2,3]
lst = ["qwe","wwe",4,5,6]
print(lst) #["qwe","wwe",4,5,6]
lst = ["qwe","wwe",4,5,6]
print(lst) #["qwe","wwe",4,5,6]
print(lst[0]) #hello
print(lst[0][1]) #i
lst[0] = "我怎么这么可爱"
print(lst) #["我怎么这么可爱","wwe",4,5,6]
- 字符串是不可变类型
s = "你好"
s[0] = "我"
print(s) #报错,字符串是不可变类型 值在变
s = "年后"
s = "我好" #指向在变
1.1列表的增
1.1.1 lst.append()
- 追加 在末尾的位置加一个
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.append("牛爱花")
print(lst)#['杨紫', '高圆圆', '刘亦菲', '关晓彤', '牛爱花']
1.1.2 lst.insert()
- 插入 第一个是要插入的位置下标 第二个是要插入的内容
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.insert(1,"包夜")
print(lst)#['杨紫', '包夜', '高圆圆', '刘亦菲', '关晓彤']
1.1.3 lst.extend() 扩展 --迭代添加
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.extend("今天是新的一年")
print(lst)#['杨紫', '高圆圆', '刘亦菲', '关晓彤', '今', '天', '是', '新', '的', '一', '年']
- 整形布尔值不能迭代
1.1.4 列表合并
lst1 = [1,2,3]
lst2 = [4,5,6]
print(lst1+lst2) #[1, 2, 3, 4, 5, 6]
- 开辟了新的空间
1.2列表的删
1.2.1 del
- 删除列表
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
del lst
print(lst) #报错 没有lst列表
- 配合下标,切片,步长删除
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
del lst[-1]
print(lst) #['杨紫', '高圆圆', '刘亦菲']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
del lst[0:2]
print(lst) #['刘亦菲', '关晓彤']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
del lst[0:2:2]
print(lst) #['高圆圆', '刘亦菲', '关晓彤']
1.2.2 lst.remove()
- 通过内容删除
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.remove("高圆圆")
print(lst)#['杨紫', '刘亦菲', '关晓彤']
1.2.3 lst.pop()
- 没有指定默认删除最后一个
- 可以指定下标删除
- 返回值位下标的内容
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.pop()
print(lst)#['杨紫', '高圆圆', '刘亦菲']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
ret=lst.pop(0)
print(lst)#['高圆圆', '刘亦菲', '关晓彤']
print(ret) #杨紫
1.2.4 lst.clear () 清空
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.clear()
print(lst)#[]
1.3 列表的改
1.3.1通过下标,切片,步长更改
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]#****
lst[0] = "杨幂"
print(lst)#['杨幂', '高圆圆', '刘亦菲', '关晓彤']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst[0:3] = "你好美"
print(lst)#['你', '好', '美', '关晓彤']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst[0:3] = "你好"
print(lst) #['你', '好','关晓彤']
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst[0:3] = "委书记董位按实际都那时"
print(lst)#['委', '书', '记', '董', '位', '按', '实', '际', '都', '那', '时', '关晓彤']
- 长度要统一
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst[0:4:2] = "你好"
print(lst)#['你', '高圆圆', '好', '关晓彤']
1.4列表的查
1.4.1 for循环
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]#杨紫
for i in lst: #高圆圆
print(i) #刘亦菲
#关晓彤
1.4.2 通过下标查
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
print(lst[0])#杨紫
1.5列表的操作
1.5.1 lst.index()
- 通过内容查找下标
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
print(lst.index("高圆圆"))#1
1.5.2 lst.count()
- 计数
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
print(lst.count("高圆圆")) #1
1.5.3 lst.copy()
- 复制
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
ret = lst.copy()
print(lst)#['杨紫', '高圆圆', '刘亦菲', '关晓彤']
print(ret)#['杨紫', '高圆圆', '刘亦菲', '关晓彤']
1.5.4 lst.reverse()
- 翻转
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
ret = lst.reverse()
print(lst)#['关晓彤', '刘亦菲', '高圆圆', '杨紫']
print(ret)#None
#这是一操作,没有返回的内容 变化的内容在元数据查看
1.5.5 lst.sort()
- 排序 通过asicii码比较 默认升序
lst = ["杨紫","高圆圆","刘亦菲","关晓彤"]
lst.sort()
print(lst)['关晓彤', '刘亦菲', '杨紫', '高圆圆']
lst = [1,5,9,63,54,81,22]
lst.sort(reverse=True)#降序
print(lst)#[81, 63, 54, 22, 9, 5, 1]
1.5列表嵌套
lst = ["杨紫","高圆圆","刘亦菲","关晓彤",["迪丽热巴","古力娜扎",["杨幂","蔡依林"]]]
print(lst[4][1]) #古力娜扎
print(lst[4][3][0])#杨幂
2.元祖 tuple
- 元祖是不可变数据 不可进行修改 存放一些用户密码的时候
- 元祖其实就是一个不可以修改的列表
tu = (1,2,3,4,"你好啊",True)
print(tu)#(1, 2, 3, 4, '你好啊', True)
print(tu[2])#3
print(tu[2:5])#(3, 4, '你好啊') 切片为元祖
print(tu[2:5:2])#(3, '你好啊')
3.range
范围 python3中range(0,10)是一个可迭代对象
python2中xrange和python中的range是一样的 都是可迭代对象
python2中的range是获取一个列表
range(0,10) # 其实位置 10 终止位置
print(range(0,10))# range(0,10)
print(list(range(0,10,3)))#[1,4,7]
- 第一个位置是其实位置 第二是终止位置 第三个是步长 终止位置和切片一样 都是取前不取后 他们之间用逗号分开