变量可以存储一个元素,而列表是一个大容器,可以存储N多个元素,程序可以方便地对这些元素进行整体操作
列表相当于其它语言中的数组
列表示意图

目录
1.列表的创建与删除
列表需要使用[],元素之间使用英文的逗号进行分割。lst=[1,'hello world',2.563]
列表的创建方式主要有两种
使用中括号 lst=[1,'hello world',2.563]
使用内置函数list()
lst1 = [1, 'hello world', 9.66]
lst2 = list([1, 'hello world', 9.66])
print(lst1 is lst2)
print(id(lst1), id(lst2))
print(type(lst1), type(lst2))
列表的特点
- 列表元素按顺序有序排序
- 索引映射唯一数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
2.列表的查询
1.获取列表中指定元素的索引(index())

print(列表名.index(要查询元素,start,stop))
2.获取列表中的单个元素

lst1 = [1, 'hello', 9.66, 'hello', '1213', 2.00, 9494]
lst2 = list([1, 'hello world', 9.66])
print(lst1.index('hello')) # 如果列表中存在N个相同元素,只返回相同元素的第一个元素的索引
# print(lst2.index('hello')) # ValueError: 'hello' is not in list(查询元素不存在)
print(lst1.index('hello', 0, 2)) # print(列表名.index(要查询元素,start,stop))获取的为索引值
print(lst1[1])
print(lst1[-6]) # 获取索引为1和-6的元素
print(lst1[10]) # 获取lst1中索引为10的元素,元素索引超限,索引会报错
3. 获取列表中的多个元素
需要用到切片的形式

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 90]
# start为1,stop为6,step为1
print(lst1[1:6:1]) # [20, 30, 40, 50, 60]
print(lst1[1:6:]) # [20, 30, 40, 50, 60] # 默认步长是1
print(lst1[1:6]) # [20, 30, 40, 50, 60]
# start=1,stop=6,step=2
print(lst1[1:6:2]) # [20, 40, 60]
print(lst1[:6:2]) # [10, 30, 50] # 默认索引从0开始
print(lst1[1::2]) # [20, 40, 60, 80, 90] # 默认索引从最后一个元素结束
'------step为负数时--------'
print(lst1[::-1]) # [90, 90, 80, 70, 60, 50, 40, 30, 20, 10]
print(lst1[7::-1]) # [80, 70, 60, 50, 40, 30, 20, 10] 从索引为7的地方,逆着数步长
print(lst1[6:0:-2]) # [70, 50, 30](一定要注意,stop能不能取到)
2.列表元素的增删改
1.判断指定元素在列表中是否存在

2.列表元素的遍历(就是将列表中的元素一起输出)

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 90]
print(10 in lst1) # True
print(100 in lst1) # False
print(10 not in lst1) # False
for _ in lst1:
print(_)
3.列表元素的增加

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
lst2 = [200, 300, 400, 500]
lst3 = [600, 700, 900]
lst4 = [0, 1, 2, 3, 4, 8, 9]
lst1.append(100) # 在lst1列表的末尾添加一个元素
print(lst1) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
lst1.append(lst2) # 将lst2作为一个元素添加到lst1中
print(lst1) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, [200, 300, 400, 500]]
lst1.extend(lst2) # 将lst2中的每一个元素分别添加到lst1的末尾
print(lst1) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, [200, 300, 400, 500], 200, 300, 400, 500]
# 列表任意位置添加一个元素
lst3.insert(3, 800) # 在lst3索引为3的地方上添加元素800
print(lst3) # [600, 700, 900, 800]
# 在任意位置上添加N多个元素
lst4[2:] = lst3 # 在lst4索引为2的地方后面加上lst3,lst4原先在索引为2后面的数据被切掉了
print(lst4) # [0, 1, 600, 700, 900, 800]
4. 列表元素的删除

"""
列表的删除操作
"""
lst = [10, 20, 30, 40, 50, 80, 30]
lst1 = list([100, 101, 102, 103, 104, 105, 106])
lst.remove(30) # 从列表中移除一个元素,如果有重复元素只移除重复元素中的第一个元素
print(lst) # [10, 20, 40, 50, 80, 30]
lst1.pop(1) # 移除lst1中索引为1的元素
print(lst1) # [100, 102, 103, 104, 105, 106]
lst.pop() # 如果不指定参数,会默认移除列表中的最后一个元素
print(lst) # [10, 20, 40, 50, 80]
new_lst = lst[1:3]
print(new_lst) # 这里只是产生了一个新的列表
lst[1:3] = [] # 如果不产生新列表去删除切片列表,可以将切片列表设为空列表
print(lst) # [10, 50, 80]
lst.clear() # 清除了列表中的全部元素
print(lst) # []
del lst # 将lst删除
print(lst)
5. 列表元素的修改
- 指定索引的元素赋予一个新值
- 为指定的切片赋予一个新的值
"列表的修改操作"
lst = [10, 20, 30, 40, 50, 80, 70, 80]
# 一次修改一个值
lst[5] = 60
print(lst) # [10, 20, 30, 40, 50, 60, 70, 80]
# 为指定的切片赋予一个新的值
lst[1:3] = [40, 30, 20, 0, 0]
print(lst) # [10, 40, 30, 20, 0, 0, 40, 50, 60, 70, 80]
3.列表元素的排序
常见的两种排序操作
- 调用sort()方式,列中有的所有元素默认按照从小到大的顺序进行排序(是对原列表进行排序),可以指定reverse=True,进行降序排序
- 调用内置函数sorted(),可以指定reverse=True,进行降序排序,(原列表不发生改变,会产生一个新的排序之后的列表)。
# -----使用sort()函数在原列表上进行排序----
lst = [10, 50, 60, 20, 30, 40, 50, 80, 90, 70]
print('排序之前', lst)
lst.sort() # 调用sort(),默认是在原列表的基础上升序排序
print('排序之后的列表', lst)
lst.sort(reverse=True)
print('降序排列的列表', lst) # 通过参数reverse=True设置,使得降序排列,默认为reverse=False是升序排序
# --------使用sorted()函数,会产生一个新的列表对象----------
lst = [10, 50, 60, 20, 30, 40, 50, 80, 90, 70]
print('排序之前', lst)
lst2 = sorted(lst)
print('排序后的原列表', lst)
print('排序后的新列表', lst2)
lst3 = sorted(lst, reverse=True) # 通过参数reverse=True设置,使得降序排列
print('排序后的新列表', lst3)
4.列表生成式
就是生成列表的公式

# -----列表生成式----
lst = [i for i in range(1, 9)]
print(lst) # [1, 2, 3, 4, 5, 6, 7, 8]
lst1 = [i**2 for i in range(1, 9)]
print(lst1) # [1, 4, 9, 16, 25, 36, 49, 64]
lst2 = [i-2 for i in range(1, 9)]
print(lst2) # [-1, 0, 1, 2, 3, 4, 5, 6]
'创建一个元素为2,4,6,8,10的列表'
lst = range(2, 12, 2)
lst1 = [2*i for i in range(1, 6)]
print(list(lst)) # [2, 4, 6, 8, 10]
print(lst1) # [2, 4, 6, 8, 10]
4489

被折叠的 条评论
为什么被折叠?



