Python学习----第三章--列表里简单的增删查改以及组织排序

1.列表简介

在python中用方括号[ ]来表示列表,里面的元素用逗号“,”隔开。

例如:number=['1','2','3','4','5'],,,,,,cars=["ofo小黄车","摩托车","大卡车"]

列表里的是字符串类型,可以''和""。但在print()中与其它字符串输出打印时也还需要转成str类型。

   print(number)         >>>>>>['1','2','3','4','5']

直接访问列表会连括号一起打印出来。

2.访问列表元素

列表是有序集合,可以使用该元素的位置或者索引告诉python要访问的元素,

例如:number=['1','2','3','4','5']        print(number[0])   >>>>>1             print(number[2]) >>>>3

索引从0开始,第一个列表元素的索引为0,所以访问number[0]会打印1,访问number[2]会打印3。

倒序访问:                                      print(number[-1])   >>>>5             print(number[-2])  >>>>4

-1表示访问列表中的最后一个元素,-2表示列表中倒数第二个元素。

3.修改、添加、和删除元素

    3.1.修改列表元素:

number=['1','2','3','4','5']
print(number)                #>>>>>>>>输出['1','2','3','4','5']
number[0]='6'                #修改0号位置元素为‘6’
print(number)                #>>>>>>>>输出['6','2','3','4','5']

    3.2.在列表中添加元素

  • append()在列表末尾添加元素

使用append()语句在列表末尾添加元素,例如: 

number=['one','two','three','four','five']   #定义一个列表
number.append('six')               #使用append()将元素six添加到列表末尾
print(number)                      #>>>>['one','two','three','four','five','six']

tests=[]                   #设置一个空列表
tests.append('1')          #使用append()在空列表中添加元素1
print(tests)               #['1']
tests.append('2')          #使用append()在空列表末尾添加元素2
print(tests)               #['1','2']
  • insert()在列表中插入元素

使用insert()在列表中插入新元素,insert(插入位置,‘插入的值’),例如:

tests=['1','2']
tests.insert(2,'3')           #使用insert()方法在第二个位置插入‘3’
print(tests)                  #>>>>>>['1','2','3']

tests.insert(4,'5')           #当前列表中总共有3个元素,位置也只有0.1.2,但我在4号位置插入'5'
print(tests)                  #>>>>['1','2','3','5']      结果只是在列表的末尾添加‘5’
print(tests[3])               #>>>>5                      而在调用时打印第3位元素结果为'5'
    #print(tests[4])          #这句错误,所以,当insert插入的位置大于列表时会直接将该元素放到列表的末尾

print(len(tests))             #可以使用len查看列表的长度   >>>>>>4
tests.insert(4,'6')           #将元素'6'插入到第4号位置
print(tests)                  #>>>>>>[ '1', '2', '3', '5','6']

   3.3.从列表中删除元素

  • del语句
#del语句根据元素所在列表中的位置删除元素,删除后是无法访问该元素的。

number=['1','2','3'] 
del number[0]             #使用del语句条件是需要知道该元素所在的位置
print(number)             #>>>['2','3'] 
  • pop()方法
#使用pop()方法弹出栈顶元素,就是将列表中最后的元素取出。
test=[ '1', '2', '3', '5']
i=test.pop()                   #此时列表中的最后一位元素‘5’被取出来放到i
print(test)                    #test中还剩下>>>[ '1', '2', '3'] 

#pop()默认删除的是最后一位,还可以通过指定位置来选择删除哪一位置上的元素,如下:
a=test.pop(0)              #此时0号位上的‘1’被拿出来放到 a
print(test)                #test中还剩下>>>[ '2', '3']


b=tests.pop()
print("被pop()方法取出的元素:b="+str(b)+"\n列表中还剩下的元素:"+tests.__str__())
#>>>被pop()方法取出的元素:b=3
#>>>列表中还剩下的元素:[ '2']
  • remove()方法
#remove()根据删除元素的值删除
number=['1','2','3','4']
number.remove('1')
print(number)               #删除值‘1’,此时列表还剩下>>>>['2','3','4']

too_big='4'                 #删除的值暂时还可以调用,暂时保存在too_big变量中
number.remove(too_big)
print(number)               #>>>['2','3']
print("我想删除"+too_big+",因为它太大了")      #>>>我想删除4,因为它太大了

#注意:remove()只删除列表中第一个指定的值,如果要删除的值在列表中多次出现,需要使用循环来判断是否完全删除。

练习:

print("\n\n\n"+"练习:")
friends=["姚慧琪","李天赐","李云"]                                 ###开始的列表
print("我的嘉宾名单:"+str(friends))
print("其中,"+friends[0].__str__()+"因为太远而无法参加晚餐!")       #使用索引即元素的位置访问该元素,访问列表中的str元素也需要将其转换str
friends[0]='吕学学'                                              #使用索引修改元素的值
print("新的嘉宾名单:"+str(friends))                               #此处注意,将列表中的值转换str类型
print("此时我找到了一家超大的饭店,再次邀请姚慧琪来吃饭!")
friends.insert(0,'姚慧琪')                                       #使用insert()函数在0号位置插入
print("现在我的嘉宾名单为:"+str(friends))
friends.insert(2,'李霞霞')                                        #使用insert()函数在指定位置插入
print("突然李霞霞来了,所以新的名单为:"+str(friends))
friends.append('李嘟嘟')                                          #使用append()在列表末尾加入
print("此时,又来了一位李嘟嘟,所以新的名单为:"+str(friends))
print("由于突发情况,饭店倒闭了,所以只能让两个人吃饭")
a=friends.pop()                                                  #使用.pop()删除列表中的最后一个元素
print("亲爱的"+a+",非常抱歉,现在除了你还有"+len(friends).__str__()+"个人,你回家吃吧!")
b=friends.pop()                                                   #这里可以使用变量 b这样就可以在之后随时调用a或者b的值
print("亲爱的"+b+",非常抱歉,现在除了你还有"+len(friends).__str__()+"个人,你回家吃吧!")
a=friends.pop()                                                   #因为第二章中,可以随时更改变量的值,这里可以重复使用a,但被覆盖的值就会不见
print("亲爱的"+a+",非常抱歉,现在除了你还有"+len(friends).__str__()+"个人,你回家吃吧!")
a=friends.pop()                                                  #从已经删除最后一个元素的列表里再取出最后一个元素
print("亲爱的"+a+",非常抱歉,现在有"+str(len(friends)+1)+"个人,你回家吃吧!")    #因为是已经执行pop操作后才计数的,所以+1
print("deal"+friends[0].__str__()+"您今晚有饭吃!")
print("deal"+friends[1].__str__()+"您今晚有饭吃!")
del friends[0]  ###这里可以是0,但下面不可以为1,因为就两个,可以删除0或者1位置上的元素
del friends[0]   ####但是已经执行了上面的操作,所以现在只剩下一个0位置上的元素,所以删除的位置只能是0
print(friends.__len__())   ###打印执行删除后的操作,所以只剩下一个长度为0的空列表



>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
练习:
我的嘉宾名单:['姚慧琪', '李天赐', '李云']
其中,姚慧琪因为太远而无法参加晚餐!
新的嘉宾名单:['吕学学', '李天赐', '李云']
此时我找到了一家超大的饭店,再次邀请姚慧琪来吃饭!
现在我的嘉宾名单为:['姚慧琪', '吕学学', '李天赐', '李云']
突然李霞霞来了,所以新的名单为:['姚慧琪', '吕学学', '李霞霞', '李天赐', '李云']
此时,又来了一位李嘟嘟,所以新的名单为:['姚慧琪', '吕学学', '李霞霞', '李天赐', '李云', '李嘟嘟']
由于突发情况,饭店倒闭了,所以只能让两个人吃饭
亲爱的李嘟嘟,非常抱歉,现在除了你还有5个人,你回家吃吧!
亲爱的李云,非常抱歉,现在除了你还有4个人,你回家吃吧!
亲爱的李天赐,非常抱歉,现在除了你还有3个人,你回家吃吧!
亲爱的李霞霞,非常抱歉,现在有3个人,你回家吃吧!
deal姚慧琪您今晚有饭吃!
deal吕学学您今晚有饭吃!
0

4.组织列表

4.1.使用sort()方法对列表永久性排序

abc=['b','c','d','a']
abc.sort()                  #使用sort()方法
print(abc)                  #>>>['a','b','c','d']  
   
#现在列表是按字母顺序排序的,再也无法恢复到原来的排序。

#给sort()传递reverse=Ture参数,让其按照字母顺序相反的顺序排序(字母倒序)、
abc=['b','c','d','a']
abc.sort(reverse=Ture)      #倒序
print(abc)                  #>>>['d','c','b','a']

4.2.使用sorted()对列表临时排序

abc=['c','b','a','d']
print(sorted(abc))     #使用sorted()函数暂时排序>>>>>>['a','b','c','d']
print(abc)             #因为sorted()排序只是暂时的,所以这里又变成原来的样子>>>['c','b','a','d']

#给sorted()进行参数设置,让它暂时倒序
abc=['c','b','a','d']
print(sorted(abc,reverse=True))       #>>>['d','c','b','a']

4.3.reverse()倒着打印列表

abc=['c','b','a','d']
abc.reverse()
print(abc)           #>>>['d','a','b','c']

#reverse()只是反转列表中元素的排列,如果要恢复原来的排序,再反转一次就可以了

4.4.len()确定列表长度

abc=['a','b','c']
print(len(abc))       >>>3


#也可以
print(abc.__len__())  >>>3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值