1.列表
定义
列表--list--容器
有序,可变,支持索引
列表:存储数据类型很多,字符串,数字, 布尔值,列表,集合,元祖,字典.
定义一个列表:
lst = ["dsb",123,True,"黑哥"] # 用逗号分隔的是一个元素
获取对象的内存地址(id)
print(lst[0]) # dsb
print(id(lst[0])) # 2354942210432
lst[0] = "dsb"
print(lst) # ['dsb', 123, True, '黑哥']
s = "alex" # 字符串是不可变数据
s = "wusir"
s[0] = "b"
print(s)
列表的增,删,改,查
增加
lst = ["dsb",123,True,"黑哥"]
lst.append("大煎饼") # 追加(在列表的最后位置追加一个内容)
print(lst) # ["dsb",123,True,"黑哥","大煎饼"]
lst.insert(2,"wusir") # 插入 以后尽量不要使用(当数据量比较大的时候会影 响效率)
print(lst) # ["dsb",123,"wusir",True,"黑哥"]
lst.extend("可迭代的内容") #迭代添加
print(lst) # ['dsb', 123, True, '黑哥', '可', '迭', '代', '的', '内', '容']
删除
lst = ["dsb",123,True,"黑哥"]
lst.pop() # 弹--默认删除最后一个
print(lst) # ['dsb', 123, True]
lst.pop(2) # 通过指定索引进行删除
print(lst) # ["dsb",123,"黑哥"]
#通过pop删除,有返回值返回的是被删除的元素
#lst = ["dsb",123,"dsb",True,"黑哥"]
lst.remove("dsb") # 移除 -- 通过元素名字进行删除
print(lst) # [123,"dsb",True,"黑哥"]
del lst[0] # 通过索引删除
print(lst) # [123,True,"黑哥"]
del lst[0:3] # 通过切片删除
print(lst) # ["黑哥"]
del lst[0:3:2] # 通过步长删除
print(lst) # [123, '黑哥']
lst.clear() # 清空
print(lst) # []
改
lst = [123,"dsb",True,"黑哥"]
lst[1] = "123" # 通过索引改变
print(lst) # [123, '123', True, '黑哥']
lst[1:2] = "12345" # 通过切片改变,且此方法改变结果为迭代方式
print(lst) # [123, '1', '2', '3', '4', '5', True, '黑 哥']
lst[1:4] = 12,13,14,15 # 通过切片改变,但此方法不迭代
print(lst) # [123, 12, 13, 14, 15]
# 切片改变列表,元素可以超出切片的位数
lst[1:4:2] = "12"/1,2 # 通过步长改变,步长不为1的必须一一对应,多一 个也不行,少一个也不行
print(lst) # [123, '1', True, '2']
查
for 循环
lst = ["dsb",123,"dsb",True,"黑哥"]
for i in lst:
print(i) # dsb
123
dsb
True
黑哥
列表的嵌套
lst = [1,"alex","春生","小东北","渣弟",["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
用索引的方式找到"自行车"
print(lst[-1][1][1][0]) # "自行车"
a = lst[-1][-1][-2]
print(a) # 吴超
# 不管什么类型,进行切片的时候获取到的都是原数据类型
# 取值通过索引进行取值,一层一层的进行查找
2.元组
定义
元组 -- tuple
有序,不可变,支持索引
只能索引查看和for查看,不能进行增删改
元组用于存储一些比较重要的信息
元组在配置文件中会使用
元组就是不可变的列表
定义一个元组:
tu = (1,"alex",True,"大黑哥",[1,2,3])
lst = [1,"alex",True,"大黑哥",[1,2,3]]
print(tu) # (1, 'alex', True, '大黑哥', [1, 2, 3])
tu = (1,"alex",True,"大黑哥",[1,2,3])
print(tu[0:6]) # (1, 'alex', True, '大黑哥', [1, 2, 3])
for 循环
for i in tu:
print(i) # 1
alex
True
大黑哥
[1, 2, 3]
3.range
定义
range -- 范围
print(list(range(0,10))) # 顾头不顾尾
python2 和 python3 中的区别
Python3 中的 range 是一个可迭代对象,写的是怎样打印的时候就是怎样
Python2 中的 range 返回的是一个列表
range的使用
print(list(range(0,10,1))) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 步长不写得时候默认为1 [0:10:1]
print(list(range(10,-2,-1))) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1]
# 步长不写得时候默认为1 [10:-2:-1]
print(list(range(10))) # 步长不写得时候默认为1 [:10]
使用for循环和range
打印 100 - 1
for i in range (100,0,-1):
print(i)
打印 1 - 100的所有奇数
for i in range(1,101,2):
print(i)
打印 1 - 100的所有偶数
for i in range(0,101,2):
print(i)
打印 1 - 100的所有被6整除的数
for i in range(0,101,6):
print(i)
让用户输入姓名,并在第三次输入后停止输入,打印出所有输入的名字.
使用 while 循环
lst = []
flage = True
while flage:
name = input("请输姓名:") # 请输姓名:agag
lst.append(name) # 请输姓名:garag
if len(lst) == 3: # 请输姓名:garg
flage = False # ['agag', 'garag', 'garg']
print(lst)
使用 for 循环和range
lst = []
for i in range(3):
lst.append(input("请输入姓名:"))
print(lst)
# 请输入姓名:sssht
# 请输入姓名:shtst
# 请输入姓名:hst
# ['sssht', 'shtst', 'hst']