python学习笔记7-列表

  1. 创建列表
    (1)普通列表

    member = ['小甲鱼','布丁','黑夜','迷途','胡图']
    member 
    number = [1,2,3,4,5]
    

    (2)混合列表

    mix = [1,'小甲鱼','布丁',2,23,[5,6,9]]
    

    (3)空列表

    empty = []
    

创建列表

  1. 向列表内添加元素
    (1)append():该函数有一个参数,且一次只能添加一个元素

    member.append('福禄娃娃')
    member
    len(memeber)
    

    (2)extend():该函数有一个参数,但可以同时添加两个元素,它的原理是使用一个列表来扩充另外一个列表

    member.append('竹林','小溪')		#会报错
    member.extend('竹林','小溪')		#也会报错
    member.extend(['竹林','小溪'])		#成功,不会报错
    

    注意:append()和extend()都会自动将元素添加到末尾,insert()可以将元素插入到任意位置

    (3)insert():该函数有两个参数,第一个参数代表在列表中的位置,第二个参数代表插入的元素

    member.insert(0,'牡丹')		#将“牡丹”插入到第一个位置
    

    插入列表元素

  2. 从列表中获取元素

    member[3]		#获取member列表中的第四个元素,从0开始计数
    
    temp = member[0] #交换member列表的第一个元素和第二个元素
    member[0] = member[4]
    member[4] = temp
    

获取列表元素

  1. 从列表中删除元素
    (1)remove():
    使用remove() 函数删除列表元素,不需要知道元素所在位置,只需要知道列表中存在该元素,如果试图删除一个列表中没有的元素,那么python会报错

    member.remove('小溪')
    member.remove('西瓜')	#列表中没有改元素,会报错
    

    (2)del
    del不是一个函数,也不是一个方法,所以不用()。它也可以删除整个列表。

    del member[1]
    del member 		#会把整个member列表删除
    

    (3)pop()
    pop()从列表中取出最后一个元素,并返回给用户。因此,pop()可以用来赋值。
    pop()还可以加上一个参数

    member.pop() 		#会把member列表中最后一个元素删除
    
    name = member.pop()		#将member列表当前的最后一个元素赋值给name,并在列表中删除该元素
    
    member.pop(1)	#弹出/删除member列表中的第二个元素
    
  2. 列表分片:
    一次性获取多个元素,相当于拷贝元素,原列表不会改变

    member[1:4]		#将member中的第二个元素和第三个元素分片出来,1代表起始位置,4代表终止位置(注:不包括4本身)
    member[:4]		#省略第一个参数,会默认从0号位置(即第一个元素)开始拷贝
    member[2:]		#省略第二个参数,会默认拷贝到最后一个元素,从2号位置(第三个元素)拷贝到最后
    member[:]		#拷贝整个member列表
    
    member2 = member[:]
    
  3. 列表的常用操作符
    (1)比较操作符:当列表中有多个元素时,默认是从第0号位置开始比较,只要有一个元素赢了,就整个列表赢了,不需要考虑整个列表。

    list1 = [123]
    list2 = [234]
    list1 > list2		#返回False
    
    list1 = [123,456]
    list2 = [234,123]
    list1 > list2	#list1和list2的第一个元素123和234进行比较,123 < 234,所以结果直接就是False了
    

    (2)逻辑操作符:

    list3 = [123,456]
    (list1 < list2) and (list1 ==list3)	#返回True
    

    (3)算术操作符 + :
    +实现列表的拼接,和之前学过的extend()的作用类似,但也存在区别。用extend()扩充更规范,尽量不用 +

    list4 = list1 + list2	#+会将list1和list2拼接到一块
    list4
    list1 + '鱼鱼鱼'		#会报错,所以尽量不用+来扩充列表,添加元素用append()或extend()更好
    

    (4)赋值操作符 = :
    +实现列表的拼接,和之前学过的extend()的作用类似,但也存在区别。用extend()扩充更规范,尽量不用 +

    list3
    list3 * 3	#将list3复制3次的一个新列表
    list3 *= 5	#将list3复制5次,并将这个新的列表赋值给list3,即list3 = list3 * 5
    

    (5)成员关系操作符 in :
    in只能判断一个层次的成员关系

    123 in list3	#返回True
    '小甲鱼' not in list3	#返回True
    list5 = [123,['小甲鱼','牡丹'],456]
    '小甲鱼' in list5	#返回False,因为小甲鱼是在列表里面的列表,in只能判断一个层次的成员关系
    '小甲鱼' in list5[1]		#返回True,它访问的是list5的第二个元素(即列表['小甲鱼','牡丹'])
    list5[1][1]		#类似于二维数组,访问的是list5中1号位置的1号元素(即'牡丹')
    
  4. 列表的小伙伴们:
    dir()
    cout():计数
    index():索引
    reverse():将整个列表原地翻转,将前后元素的位置全部置换
    sort():有三个参数(暂时不学),对列表成员从小到大进行排序,sort(reverse),这个里面的reverse默认是False

    dir(list)
    list3.count(123)
    list3.index(123)
    list3.index(123,3,7)	#3,7代表的是索引范围,起始和终止位置,返回值是元素123在(3,7)之间出现的位置
    list3.reverse()
    list3
    
    list6 = [40,4,8,2,3,7,19,0]
    list6.sort()
    list6
    
    list6.sort(reverse=True)
    
    list7 = list6[:]	#利用分片复制列表,开创了新的内存空间
    list8 = list6		#用 = 复制列表,并没有开创新的内存空间,和上述语句是有区别的,下面sort语句操作就可以看出区别
    list6.sort()
    list6
    list7
    list8		# list8会跟着 list6 改变,而 list7 不会,它依旧是原来的值
    

分片
有列表 name = [‘F’, ‘i’, ‘h’, ‘C’],如果小甲鱼想要在元素 ‘i’ 和 ‘h’ 之间插入元素 ‘s’,应该使用什么方法来插入?

name.insert(2,'s')

插入元素
练习1.自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
假设给定以下列表:
member = [‘小甲鱼’, ‘黑夜’, ‘迷途’, ‘怡静’, ‘秋舞斜阳’]
要求将列表修改为:
member = [‘小甲鱼’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡静’, 90, ‘秋舞斜阳’, 88]
方法一:使用 insert() 和 append() 方法修改列表。

member.insert(1,'88')
member.insert(3,'90')
member.insert(5,'85')
member.insert(7,'90')
member.insert(9,'88')

方法二:重新创建一个同名字的列表覆盖。

练习2.请问如何将下边这个列表的’小甲鱼’修改为’小鱿鱼’?
list1 = [1, [1, 2, [‘小甲鱼’]], 3, 5, 8, 13, 18]
解:

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0]="小鱿鱼"

练习3. 利用 for 循环打印 member 列表中的每个内容:

member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
for each in member:
	print (each)

练习4.请使用列表推导式补充被小甲鱼不小心涂掉的部分
在这里插入图片描述

#小甲鱼代码,自己不会
list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3=[name + ':'+ slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
for each in list3:
    print(each)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Max_J999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值