基本定义
相当于一个容器,有序,可变,支持索引
可以存储数据,支持的数据类型很多:字符串,数字,布尔值,列表,集合,元祖,字典
# 定义个列表
lst = ["adb", 123, True, "黑哥"]
# 用逗号分隔的是一个元素
print(lst) # 原样输出
print(lst[0]) # 输出单个元素
print(id(lst[0])) # id获取对象的内存地址
lst[0] = "烧饼" # 把"abc"内存的地址指向"烧饼",id更新
print(lst)
# lst存放的是每个元素对应的内存地址
增加元素
Append 追加(在列表的最后位置添加一个内容)
lst.append("小狗") # 在最后的位置添加
print(lst)
Insert 固定位置添加
lst.insert(2,'wusir') #尽量不实用,因为当数据量比较大的时候会影响效率
print(lst)
Extend 迭代添加
lst.extend("今天好") #迭代添加
print(lst)
注意:不能放数字和布尔值
Pop删除
默认删除最后一个
lst.pop() # 默认删除最后一个,有返回值,返回的是被删除的元素
print(lst)
通过索引删除
lst.pop(2) # 索引删除
print(lst)
移除 —— 通过元素名字进行删除
只会移除第一个相同的元素
lst.remove("烧饼") # 删除第一个相同的元素
print(lst)
del 删除
del lst[0] # 通过索引删除
del lst[0:3] # 根据切片删除
print(lst)
del lst[0:3:2] # 根据切片步长删除
print(lst)
clear 清空列表
lst.clear() # 清空列表
print(lst)
查找:
lst = ["dsb",123,"dsb",True,"黑哥"]
for i in lst:
print i
嵌套
lst = [1,"alex","春生","小东北","渣弟",
["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],
"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
# 海峰
print(lst[-1][3])
# 女神
print(lst[-1][-1][1])
注意⚠️:不管什么类型进行切片的时候,获取的都是源数据类型
替换
li[1] = "Kelly" # 直接把第二个元素改成了Kelly
print(li)
元组
基本定义
元组 — tuple(他跑),有序,不可变,支持索引
无增删改,支持索引
元组用于存储一些比较重要的信息
元组在配置文件中会使用
元祖就是一个不可变的列表
元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组
索引
tu = (1, "alex", True, "大黑哥", [1, 2, 3]) # 元组
print(tu)
print(tu[1:3])
循环遍历
# for 循环
for i in tu:
print(i)
range
基本定义
range —— 范围
Python一切皆对象
Linux一切皆文件
Python3 中的range是一个可迭代对象,写得是怎样的,打印的时候就是怎样
Python2 中的range返回的是一个列表
range 顾头不顾尾
range(起始位置,终止位置) -- [起始位置:终止位置]
range(终止位置) -- [:终止位置]
range(起始位置,终止位置,步长) -- [起始位置:终止位置:步长]
for 和 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]
# 打印输出转换成列表的时候顾头不顾尾
print((list(list(range(0,10,1)))))
使用
for i in range(100, 0, -1): print(i)
# 当打印的只有一行代码的时候,可以放到上一行
# 1-100的偶数
for i in range(0, 101, 2):
print(i)
# 1-100里面的基数
for i in range(1, 101, 2): print(i)
# 定义一个空的列表,当flage为true的时候,往列表中添加用户输入的元素,当列表长度等于3的时候,让flage为false不再进行循环
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)
元组和列表:支持索引,切片,步长;均可进行嵌套
Python2中xrange 和 python3中的range 相似