Python学习--列表

list_1 = []  

列表是可变的容器型数据类型

增加

  • appqend:追加,在列表的末尾添加新的元素

  • insert:插入,在列表中在指定位置添加元素

  • extend:将另一个容器中的元素添加到列表

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:删除元素,指定列表指定下标删除

  • remove:指定元素删除,一次只删除一个,从左往右删,如果找不到元素报错

  • pop:通过下标删除元素,没写下标默认删除最后一个

  • clear:清空

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.简介遍历

  • len():能够查看容器的长度(元素的个数)

  • 容器长度永远比最后一个元素的下标大1

for j in range(len(list_1)):  
    print(f'{j}---->{list_1[j]}')  
  • 只有有序容器才可以简介遍历

列表相关方法

list_1 = [30, 40, 0, 23.5, 3, 100]  
  • index:从左往右查找某个元素第一次出现的位置,返回正向下标,找不到元素会报错

- result_1 = list_1.index(30)  
print(result_1) 

  • sort:排序:默认改变列表本身

  • reverse默认从小到大,如果reverse=True,变为从大到小,revserse默认为False,可以不写

- print(list_1)  
list_1.sort(reverse=True)  
print(list_1)  
list_2 = [0, 100, 90, 55]  
  • sorted:排序,不改变数据本身,有返回值

  • reverse默认从小到大,如果reverse=True,变为从大到小,revserse默认为False,可以不写

print(sorted(list_2, reverse=True), list_2)  
  • reverse:将列表所有元素逆序输出

  • 注意:reverse也是直接修改列表本身

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('张三'))

扩展

  • sum:sum(list,[])可以将列表中只有列表的列表展开

列表生成式

一、作用:生成列表的表达式

二、其他的名字:列表推导式

三、替代:列表生成式,可以使用 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)  

六、总结

列表生成式最终目的

  • 1、简化创建列表并添加元素的过程

  • 2、提升性能

七、性能优化

使用空间换时间、使用时间换空间、时间空间达到平衡

例如:从时间的角度查看性能的好坏

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值