list_1 = []
列表是可变的容器型数据类型
增加
list_1.append('java')
list_1.append('python')
list_1.insert(1, 'c')
list_1.extend(['html', 'css', 'javascript'])
list_1.append(['css3', 'css'])
list_1.append('css')
print(list_1)
修改
list_1[-1] = 'python'
print(list_1)
删除
del list_1[0]
print(list_1)
list_1.remove('python')
print(list_1)
list_1.pop(0)
print(list_1)
list_1.pop()
list_1.clear()
print(list_1)
删除文件:windows:shift+空格键----->原地删除文件,不经过回收站
del pop
list_2 = [1, 2, 3, 4, 5]
print(list_2.pop())
print(list_2)
pop删除元素会返回有返回值
del list_2[0]
print(list_2)
del删除元素没有返回值
一、列表的比较大小
a = [1, 2]
b = [1, 3]
c = [1, 2, 3]
print(a > b, a > c, a < c, b > c)
1.列表比较大小比较的是第一对(两个容器中下标下同但元素不同的元素)不相同元素的大小
2.如果找不到符合第一点的,再看容量
print(a>1)
3.比较大小比较的是同类型(数字属于同一类型)元素的大小
二、列表的加法和乘法
加法(拼接),乘法(重复)
print(a+b,a*3)
三、成员运算:in,not in
成员运算:判断某元素是否在列表中
d=[1,2,3]
print(3 in d,[3] not in d)
列表循环
list_1 = [2, 4, 6, 8, 10]
1.直接遍历
for i in list_1:
print(i)
2.简介遍历
for j in range(len(list_1)):
print(f'{j}---->{list_1[j]}')
列表相关方法
list_1 = [30, 40, 0, 23.5, 3, 100]
- result_1 = list_1.index(30)
print(result_1)
- print(list_1)
list_1.sort(reverse=True)
print(list_1)
list_2 = [0, 100, 90, 55]
print(sorted(list_2, reverse=True), list_2)
list_2.reverse()
print(list_2)
列表相关数学方法
sum:求和.将列表中所有的元素加起来
注意,保证容器中的元素能做算数的加法运算
num_1 = [10, 20, 30, 40]
print(sum(num_1))
num_2=[[1,2,[1,1]],[3,4]]
print(sum(num_2[0],[]))
max/min求最大或最小
本质还是比较运算
注意事项:必须保证容器中参与比较大小的所有元素都能符合比较的条件(同类型)
score=[10,50,66,99,99]
print(max(score),min(score))
count:计算某个元素在容器中的次数,如果某个元素找不到,结果为0
names=['张三','李四','张三','王五']
print(names.count('张三'))
扩展
列表生成式
一、作用:生成列表的表达式
二、其他的名字:列表推导式
三、替代:列表生成式,可以使用 A.先创建空列表;,B:再向列表中添加元素 进行替代
四、性能:列表生成式性能相对来说是最好的
五、语法
(1):[表达式 for 变量 in 容器]
执行逻辑:for循环执行一次,表达式执行一次,表达式产生的结果会作为列表的一个元素
l1 = [i for i in range(1, 11)]
print(l1)
(2):[表达式 for 变量 in 容器 if 条件]
执行逻辑:for循环执行一次,分支结构判断一次,条件成立时,表达式再执行
l2 = [i for i in range(50) if i % 3 == 0]
print(l2)
(3):[表达式 for 变量 in 容器1 for 变量 in 容器2]
执行逻辑:内层循环每执行一次,表达式就会执行一次
第一个for执行一次,第二个for需要执行多次
l3 = [i for i in range(1, 4) for j in range(1, 6)]
print(l3)
六、总结
列表生成式最终目的
七、性能优化
使用空间换时间、使用时间换空间、时间空间达到平衡
例如:从时间的角度查看性能的好坏
import time
time():获取当前的时间戳
什么是时间戳:记录时间的一种方式
大部分计算机,编程语言认为1970年1月1日(00:00:00)开始
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数
print(time.time())
计算append花费时间
start = time.time()
new_l=[]
for i in range(1,100000000):
new_l.append(i)
end = time.time()
print(end-start)
计算列表生成式花费时间
start=time.time()
new_l2=[i for i in range(1,100000000)]
end=time.time()
print(end-start)