列表,元组和range
列表和元组
列表
为什么要有列表
+ int bool str:
+ str
+ 储存少量的数据
+ 切片还是其他操作.获取的都是str类型.储存的数据单一.
其他数据类型存储数据较少,达到不了我们的需求
什么是列表
li = ["x","123",Ture,[1,2,3]] 承载任意数据类型,储存大量 的数据
python 常用的容器型数据类型.list 列表. 其他语言:Java:数组
列表是有序的,可索引切片(步长)
列表的操作
列表的创建
方式1: li = [1,x,"s"]
方式2: li =list("多个元素组成的迭代对象")
方式3: 列表推导式(函数部分)
列表索引切片步长
li = [1,3,2,"a",4,"b",5,"c"]
li[开始索引,结束索引,步长]
l1 = li[:3] #取从开始到第三个索引前一个(顾头不顾尾)
l2 = li[3:-2] #取第三个开始到倒数第二个的前一个
l3 = li[1:-2:2] #从第一个开始取,向后每隔2个取一个,取到倒数第二个
l4 = li[-3::-2] #从倒数第三个开始取,向前每隔2个取一个,取到开始
print(l1,l2,l3,l4)
列表的增删改查
+ 增
+append:追加.加在列表最后
+insert 插入insert(位置,需要加入的字符)
+extend 迭代增加: extend ("abc") a,b,c追加进列表
+ 删
+ 按照位置(索引位置)删除:pop 有返回值(返回被删除的元素)
+ 指定元素删: remove (如果有 重名元素,默认删除从左数第一个)
+ clear() 了解 清空
+ del
+ 可以按照索引删 del li[-1]
+ 可以按照切片删除 del li[::2]
+ 改
+ 按照索引改值 li[0] = "" 将右边的值赋给左边
+ 按照切片改 li[2:] = "" 将右边的值迭代的赋给左边
+ 按照切片(步长)li[::2] = "abc" 必须一一对应,删一个需要加一个进去
+ 查
+ 索引
+ 切片(步长)
+ for循环
列表的嵌套
li = [1,2,"taibai",[1,"alex",3]]
li[2] = "taibai".upper()
li[-1].append("教育")
print(li)
元组
+ 只读列表,存大量数据,也可以按照索引,切片(步长).
+ 查看
+ for i in tu
print(i)
+ tu[x] x为索引
+ 应用
+ 重要数据,用户,密码,个人信息.(不想让别人改动的一些数据,存在元组中)
+ 元组的拆包.分别赋值(列表也行,一般不用)
a,b =(1,2) //多一个少一个都不行
print(a,b)
range
+ 类似于列表,自定制数字范围的数字列表(也有索引)(顾头不顾尾)
+ (x,y,z) x也起始,y为结束,z为步长 {逗号","区分}
+ 多于for循环结合
li = [1,2,3,4,5]
for i in range(len(li)):
print(i)