1.列表
2.元组
3.range
列表 -- list -- 容器
有序,可变,支持索引
列表: 存储数据,支持的数据类型很多 字符串,数字,布尔值,列表,集合,元祖,字典
切记:list不要当变量名,之间的逗号必须使用英文的
定义一个列表
lst = ["dsb",123,True,"黑哥"] # 用逗号分隔的是一个元素定义一个列表
lst = ["dsb",123,True,"黑哥"] # 用逗号分隔的是一个元素
print(lst[0])
print(id(lst[0]))
id获取对象的内存地址
字符串不可变,相当于只是从一个变到另一个
列表可变,相当于是产生了一个新的空间,显示的是新的空间
输出的时候,字符串是新赋的值,列表是还原值
字符串:s1 = s.replace() print(s1)
列表:lst.append() print(lst)
lst[0] = "dsb"
print(lst) # ['dsb', 123, True, '黑哥']
s = "alex" # 字符串是不可变数据
s = "wusir"
s[0] = "b"
print(s)
lst.append("大煎饼") #追加(在列表的最后位置添加一个内容)
print(lst)
lst.insert(2,"wusir") #插入 以后尽量不要使用(当数据量比较大的时候会影响效率)
print(lst) 2:一定要声明,否则就会报错
lst.extend("可迭代的内容") # 迭代添加
print(lst) 不能放数字或布尔值,只能放可迭代对象
lst.pop() # 弹 -- 默认删除最后一个
print(lst) 有返回值,返回被删除的对象,
lst = ["dsb",123,True,"黑哥"]
lst.pop(2) # 通过指定索引进行删除,超出范围会报错
print(lst)
lst = ["dsb",123,"dsb",True,"黑哥"]
lst.remove("dsb") # 移除 -- 通过元素名字进行删除
print(lst)
del lst[0] # 通过索引删除 删除完列表就不存在了
print(lst)
del lst[0:3] # 通过切片删除
print(lst)
del lst[0:3:2] # 通过步长删除
print(lst)
lst.clear() #清空
print(lst)
lst = ["dsb",123,"dsb",True,"黑哥"]
lst[1] = "123"
print(lst)
lst = ["dsb",123,"dsb",True,"黑哥"]
lst[1:2] = "12345"
print(lst) 是迭代进来的,数字不能被迭代,元素可以超出切片的位数
lst = ["dsb",123,"dsb",True,"黑哥"]
lst[1:4] = 12,13,14,15
print(lst)
lst = ["dsb",123,"dsb",True,"黑哥"]
lst[1:4:2] = "12"
print(lst) # 步长不为1的必须用一一对应,多一个也不行,少一个也不行
for 循环
lst = ["dsb",123,"dsb",True,"黑哥"]
for i in lst:
print(i)
lst = [1,"alex","春生","小东北","渣弟",
["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],
"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
print(lst[-1][1][1][0])
a = lst[-1][-1][-2]
print(a)
不管什么类型进行切片的时候获取都到都是源数据类型
元组 -- tuple
有序,不可变,支持索引
元组用于存储一些比较重要的信息
元组在配置文件中会使用
元组就是不可变的列表
tu = (1,"alex",True,"大黑哥",[1,2,3])
lst = [1,"alex",True,"大黑哥",[1,2,3]]
print(tu)
tu = (1,"alex",True,"大黑哥",[1,2,3])
print(tu[0:6])
for 循环
for i in tu:
print(i)
-*- coding:utf-8 -*-
range -- 范围
print(list(range(0,10))) # 顾头不顾尾
python3 中的range是一个可迭代对象 写得是怎样的打印的时候就是怎样
获取成列表:list(range(0,10)) 顾头不顾尾
python2 中的range返回的是一个列表
print(list(range(0,10,1))) #步长不写得时候默认为1 [0:10:1]
print(list(range(10,-2,-1))) #步长不写得时候默认为1 [10:-2:-1]
print(list(range(10))) #步长不写得时候默认为1 [:10]
使用for循环和range 打印 100 ~ 1
for i in range(100,0,-1):
print(i)
for i in range(1,101,2):
print(i)
for i in range(0,101,2):
print(i)
for i in range(0,101,6):
print(i)
错误示例:
while range(0,10):
print(1)
lst = []
flage = True
while flage:
name = input("请输姓名:")
lst.append(name)
if len(lst) == 3:
flage = False
print(lst)
lst = []
for i in range(3):
lst.append(input("请输入姓名:"))
print(lst)
列表 -- list
有序,可变的,索引,
作用:存储数据的,支持很多种数据类型
定义方式:
lst = [1,"alex","黑哥"]
增:
append 追加
insert 插入
extend 迭代添加
删
del lst -- 删除整个列表
del lst[1:2] -- 切片删除
del lst[1:4:2] -- 步长删除
pop
1.默认删除最后一个
2.有返回值返回的是被删除的元素
3.通过索引进行删除
clear 清空列表
remove 通过元素进行删除
改
lst[0] = 1
lst[1:2] ="qaaa" # 元素可以超出切片的位数
lst[1:4:2] = "12" # 元素和位置一一对应,多也不行少也不行
查
for i in lst:
print(i)
列表的嵌套:
取值通过索引进行取值,一层一层的进行查找
2.元组 -- tuple
只能索引查看和for查看,不能进行增删改
存储一些重要的信息数据
元组是不可变的列表
3.range -- 范围
python3:
range 是一个可迭代对象
python2:
xrange和python3中的range是相似的
range返回一个列表
range 是顾头不顾尾
range(起始位置,终止位置) -- [起始位置:终止位置]
range(终止位置) -- [:终止位置]
range(起始位置,终止位置,步长) -- [起始位置:终止位置:步长]
for 和 range配合使用
面试题:
lst = []
for i in lst:
lst.append("alex")
print(lst) # 不会打印内容 因为lst是空的
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 循环打印lst中的内容 -- 此循环是死循环
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 死循环 -- 不会打印内容
lst = []
for i in range(5):
lst.append([])
print(lst) # [[],[],[],[],[]]
lst = [1,2]
lst[0] = lst
print(lst) # [[...],2]
原文:https://www.cnblogs.com/liubing8/p/11160594.html