一.列表
性质:
1.列表,容器符号:[],数据类型:list
2.列表是有序的数据类型(每个元素有自己的固定位置,‘下标’)
3.列表是可变的(对列表中元素进行增删改操作)
4.列表中可以保存任意类型的数据
5.列表中允许出现重复元素
二.列表的运算
list1 = [] # 空列表
list2 = list() # 通过构造语法创建空列表
print(list1, list2, list1 == list2)
list3 = [1, 1.1, True, ‘abcd’, [123], None, (1, 2, 3), {‘name’: 20}, {1, 2, 3}]
print(list3)
a.列表的拼接(生成一个新列表)
print(list3 + list3)
b. 列表的重复
print(list3 * 5)
c.成员运算:in、not in
print(‘abcd’ in list3)
print(‘bcda’ not in list3)
print(1 in list3)
print([1] in list3)
print(‘-------------------分割线-----------------------’)
d.比较运算:列表之间可以比较大小
容器形数据类型比较大小比较的是相同位置的元素的大小
list4=[1,2,3,4]
list5=[1,2,4,5]
print(list4<list5)
列表
list1 = [‘英雄联盟’, ‘CS:GO’, ‘超级马里奥’, ‘元神’, ‘魂斗罗’, ‘王者荣耀’, ‘PUBG’]
列表中每个元素都有自己的位置(下标)
下标分为正向下标、负向下标
正向下标:从左到右数,从0开始
负向下标: 从右向左,从-1开始
二、通过下标获取元素:有序容器[下标数字]
print(list1[2] == list1[-5])
print(list1[2])
print(list1)
三、切片:获取有序容器中某一部分元素,得到的结构是和原容器相同类型的容器
有序容器[M:N:step]—>左闭右开[M,N)
切片中正向下标和负向下标可以混用
切片中开始和结束下标都不写,表示从头到尾
开始不写,结束写,表示从开头取到指定下标;反之,从指定下标取到末尾
切片只有一个冒号,代表step=1
注意:切片参考range()
print(list1[0:7])
print(list1[0:7:3])
print(list1[1:-2:3])
print(list1[-1:-8:-1])
print(list1[:])
print(list1[::-1])
print(list1[::-3])
list1 = [‘英雄联盟’, ‘CS:GO’, ‘超级马里奥’, ‘原神’, ‘魂斗罗’, ‘王者荣耀’, ‘PUBG’]
1.获取[‘英雄联盟’,‘PUBG’]
print(list1[0:8:6])
2.获取’原神’
print(list1[3])
3.获取[‘王者荣耀’,‘原神’,‘CS:GO’]
print(list1[-2:-7:-2])
4.获取[‘魂斗罗’,‘原神’,‘超级马里奥’]
print(list1[-3:-6:-1])
通过下标获取元素,下标不能越界。
print(list1[100])
在切片中允许下标越界
print(list1[1:1000000])
循环遍历
- 直接遍历
list1=[‘A’,‘B’,‘C’,‘D’]
for i in list1:
print(i) - 间接遍历: 通过下标遍历
len():获取有序容器的长度
print(len(list1))
for index in range (len(list1)):
print(f’{index}—>{list1[index]}')
-
enumerate() :能够将列表中的每一个元素及其下标放到一个元组中,多个元组组成一个可迭代对象
可迭代对象(能够做遍历)
print(enumerate(list1))
for content in enumerate(list1):
print(content)list1 = [‘Java’,‘Python’,‘C’]
列表的增删改
增
append :追加,向列表的末尾添加元素
list1.append(‘HTML’)
print(list1)
insert : 插入,向列表的任意位置添加元素
list1.insert(0,‘c++’)
extend: 追加,从一个容器中将所有元素添加到列表中
list1.extend(‘123’)
list1.extend([‘Golongh’,‘Ui’])
print(list1)
改
有序容器[下标]= 值
list1[5]= ‘Java’
print(list1)
删
del:del有序容器[下标]
del list1[6]
print(list1)
remove:根据元素删除,从左向右删除,如果元素重复,一次只能删除一个
list1.remove(‘3’)
list1.remove(‘Java’)
print(list1)
pop: 如果不给pop指定元素,删除的是列表中最后的一个元素:或者给pop指定下标
pop方法可以告诉你删除的是那个元素
list1.pop()
print(list1)
print(list1.pop(0))
print(list1)
列表的相关方法
查找列表中元素:index
index的方法默认从左到右查找,找到元素立即停止查找,返回下标
可以指定index 开始查找元素位置。index 找不到会报错
list1= [‘Java’,‘Python’,‘Java’]
result = list1.index(‘Java’)
print(result)
result1=list1.index(‘Java’,1)
print(result1)
二.sum ,max ,min - 操作对象必须是数字列表(列表中的元素全是数字)
num_list=[1,2,3,4,5,]
print(sum(num_list))
print(max(num_list))
print(min(num_list))
三.reverse:将列表倒序,直接对列表本身修改
num_list=[1,2,3,4,5,]
num_list.reverse()
四、sort 、sorted:对列表排序
sort 默认排序为升序,修改列表本身。如果reverse=True,降序排序
list2=[2,5,1,7,0]
list2.sort()
print(list2)
list2.sort(reverse=True)
sorted: 默认升序排序, 如果resever=Ture,降序排序
list3=[2,5,1,7,0]
print(sorted(list3),list3)
print(sorted(list3,reverse=True))
五.count:统计某元素的次数
list3=[2,5,1,7,0]
print(list3.count(2))
print(list3.count(9))
列表推导
列表推导式(列表生成式)
生成有元素的列表(在某些场景下能代替append)
性能比较:列表推导式>append
语法
[表达式 for 变量 in 容器]
将100以内5的倍数 添加到列表中
import random
list =[]
for i in range (0,101,5):
list.append(i)
print(list)
list1 = [ i for i in range(0,101,5)]
print(list1)
将某个元素在列表中重复N此
如果for中变量没有实际意义,可以使用下划线“_”代替
list3=[[1,2,3]for _ in range(10)]
print(list3)
语法:二
[表达式 for 变量 in 容器 if 条件]
list4=[ i for i in range (101)if i%5==0]
print(list4)
list5=[True if i%5==0 else False for i in range(11) ]
print(list5)
print(‘-----------------------------分割线--------------------------------’)
语法三
[表达式 for 变量1 in 容器1 for 变量2 in 容器2 ]
list6=[ f’{i}{j}={ij}’ for i in range(1,10) for j in range(1,i+1)]
print(list6)
import random
csore=[[random.randint(0,1) for i in range(3)] for _ in range(5) ]
print(csore)
本文详细介绍了Python列表的性质、运算、下标获取、切片、循环遍历、增删改操作,以及相关方法如append、insert、extend、index、remove、pop等。此外,还探讨了列表推导式及其应用场景。
964

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



