【Python基础】列表list的基本知识:定义,创建,增删改查,排序,生成式
【目录】
1.什么是列表?
2.怎样创建列表(简单)
3.怎样创建列表(列表生成式)
4.获取列表中的单个元素
5.获取列表中的多个元素(切片操作)
6.增加列表元素
7.删除列表元素
8.修改列表元素
9.排序列表元素
10.判断列表元素是否存在,遍历列表元素
【内容】
1.什么是列表?
'''
变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素(不同类型也可以),程序可以方便地对这些数据进行整体操作
列表相当于其他语言中的数组
'''
'''
列表的特点:
1.列表元素按顺序有序排序
2.索引映射唯一一个数据
3.列表可以存储重复的数据
4.任意数据类型混存
5.根据需要动态分配和回收内存
'''
a=10
# 变量存储的是一个对象的引用
lst=['hello','world',98]
# 存储了N个对象的引用
print(id(lst))
print(type(lst))
print(lst)
lst2=lst.copy()
print(id(lst2))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
2.怎样创建列表(简单)
'''
列表的创建:
1,使用中括号
2,调用内置函数list()
'''
lst=['hello','world',98,'hello']
print(lst[0])
print(lst[-4])
lst2=list(['hello','world',98])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
3.怎样创建列表(列表生成式)
'''
列表生成式:
简称就是生成列表的一个公式
'''
lst = [i*i for i in range(1,10)]
print(lst)
'''
这边的i*i表示列表元素的表达式
注意事项:
”表示列表元素的表达式“种通常包含自定义变量
'''
'''
生成一个列表,列表中的元素是2,4,6,8,10
'''
lst1=[i*2 for i in range(1,6)]
print(lst1)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
4.获取列表中的单个元素
'''
列表的查询操作:
1,获取列表中指定索引
index()
1.如果列表中存在n个相同的元素,只返回相同元素中的第一个元素
2.如果查询的元素在列表中不存在,则会抛出ValueError
3.还可以在指定的start和stop中进行查找
2,获取列表中的单个元素
获取单个元素
1.正向索引从0到N-1
2.逆向索引从-N到-1
3.指定索引不存在,抛出IndexError
'''
lst=['hello','world',98,'hello','world',234]
print(lst.index('hello'))
# 参照第一条
# print(lst.index('Python'))
# 参照第二条
print(lst.index('hello',1,4))
# 参照第三条
# 获取索引为2的元素
print(lst[2])
# 获取索引为-4的元素
print(lst[-4])
# 获取索引为10的元素呢
# print(lst[10])
# 会报错,索引超出范围
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
5.获取列表中的多个元素(切片操作)
'''
列表元素的查询操作
获取列表中的多个元素:
语法格式:
列表名[start:stop:step]
称为切片操作
1.切片的结果:原列表片段的拷贝
2.切片的范围,[start,stop]
3.step默认为1,简写为[start,stop]
4.step为正数:从start开始往后计算切片
[:stop:step],切片的第一个元素默认从列表的第一个元素开始
[start::step],切片的最后一个元素默认为列表的最后一个元素
5.step为负数:从start开始往前计算切片
[:stop:step],切片的第一个元素默认为列表的最后一个元素
[start::step],切片的最后一个元素默认为列表的第一个元素
'''
lst=[10,20,30,40,50,60,70,80]
# print(lst[1:6:1])
print('切片的原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段',id(lst2))
print(lst[1:6])
# 默认步长为1
print(lst[1:6:])
# 同样默认为步长为1
print(lst[1:6:2])
# 步长设置为2
print(lst[:6:2])
# start不写,默认从开头开始,步长为2,知道索引为5停止
print(lst[1::2])
# stop不写,默认到最后一个元素,从索引为1开始,步长为2
print(lst[-1:-2:-1])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
6.增加列表元素
'''
列表元素的增加操作:
1.append(), 在列表末尾添加一个元素
2.extend(), 在列表的末尾至少添加一个元素
3.insert(), 在列表的任意位置添加一个元素
4.切片, 在列表的任意位置添加至少一个元素
'''
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
lst2=['hello','world']
lst.append(lst2)
# 该添加方式是将lst2作为一个元素添加到了列表的末尾
print(lst)
lst.extend(lst2)
print(lst)
# 向列表的末尾一次性的添加多个元素
lst.insert(1,90)
print(lst)
# 在列表的任意位置添加一个元素
lst3=[True,False,'hello']
# 在任意位置上添加N多个元素
lst[1::]=lst3
print(lst)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
7.删除列表元素
'''
列表元素的删除操作:
1.remove()
1.一次删除一个元素
2.重复的元素只删除第一个
3.元素不存在则抛出ValueError
2.pop()
1.删除一个指定索引位置上的元素
2.指定索引不存在则抛出IndexError
3.不指定索引,默认删除列表中的最后一个元素
3.切片
1.一次至少删除一个元素
4.clear()
1.清空列表
5.del
1、删除列表
'''
# 示例1
lst1=[10,20,30,40,50,60,30]
lst1.remove(30)
print(lst1)
# 示例2
# lst1.remove(90)
# 报错ValueError: list.remove(x): x not in list
# 示例3
lst1.pop(1)
print(lst1)
# 示例4
# lst1.pop(6)
# IndexError: pop index out of range
# 示例5
lst1.pop()
# 不指定则会删除最后一个元素
'''切片:删除至少一个元素,将产生一个新的列表对象'''
lst=[10,40,50,60]
new_lst=lst[1:3]
print('原列表:',id(lst))
print('切片后的列表:',id(new_lst))
'''如何不产生新的列表对象,而是去删除列表中的内容'''
lst[1:3]=[]
print(lst)
# 用空列表替代原来列表中的一些元素
'''clear()'''
lst4=[10,20,30]
lst4.clear()
print(lst4)
# del lst4
# print(lst4)
# 列表已经被删除,这样写会报错:NameError: name 'lst4' is not defined
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
8.修改列表元素
'''
列表元素的修改操作:
1.为指定索引的元素赋一个新值
2,为指定的切片赋予一系列新值
'''
lst=[10,20,30,40]
lst[2]=100
print(lst)
lst[1:3]=[300,400,500,600]
print(lst)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
9.排序列表元素
'''
列表的排序操作
常见的有两种方式
'''
lst=[20,40,10,98,54]
print('排序前的列表:',lst,id(lst))
# 开始排序
'''
第一种方法,调用列表对象的sort方法,默认是升序排序
'''
lst.sort()
print('排序后的列表:',lst,id(lst))
'''
id()用来检查有没有生成新的列表对象,这里是没有生成的,排序是在原列表上进行的
'''
'''
通过指定关键字,可以使得列表中的元素降序排序
sort(reverse=True)表示降序,False表示升序
'''
lst.sort(reverse=True)
print('降序排序后的列表:',lst,id(lst))
lst.sort(reverse=False)
print('升序排序后的列表:',lst,id(lst))
'''
第二种方法
使用内置函数sorted()对列表进行排序,将会产生一个新的列表对象
'''
lst=[20,40,10,98,54]
print('原列表:',lst,id(lst))
new_lst=sorted(lst)
print('新列表:',new_lst,id(new_lst))
'''
同样可以指定关键字的参数,实现列表的一个降序排序
'''
new_lst=sorted(lst,reverse=True)
print('降序排序后的列表',new_lst,id(new_lst))
'''
sorted()内置函数使用时,是产生一个新的列表对象,而原列表不发生任何改变
'''
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
10.判断列表元素是否存在,遍历列表元素
'''
列表的查询操:
1,判断指定的元素在列表中是否存在
元素 in 列表名
元素 not in 列表名
2,列表元素的遍历
for 迭代变量 in 列表名:
操作
'''
print('p' in 'python')
# True
print('l' in 'python')
# False
lst=[10,20,'python','hello']
print(10 in lst)
# True
print(100 in lst)
# False
print(10 not in lst)
# False
for i in lst:
# for in 中的in之后必须是可迭代的对象,我们现在已知的可以迭代的对象为字符串和列表
print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
【感谢】
感谢阅读,建议大家最好复制一下,自己跑一遍,可以记久一点,建议收藏噢~~~~