Python基础之列表(2)

本文深入探讨Python列表的使用,涉及添加、删除元素,以及count()、index()函数的应用。强调了在列表中间位置插入和删除的潜在问题。此外,详细解释了sort()和reverse()进行原地排序的功能,以及sorted()和reversed()如何生成新列表而不改变原始列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上节讲到列表的基本用法,这节具体讲下操作列表的函数用法。

1.添加元素

>>>x = [1,2,3]
>>>id(x)                                  #查看对象的内存地址
50159368

>>>x.append(4)                            #在尾部追加元素
>>>x
[1,2,3,4]

>>>x.insert(2,0)                          #在指定位置插入元素,前一个参数是位置
>>>x
[1,2,0,3,4]

>>>x.extend([5,6,7])                      #在尾部追加多个元素
>>>x
[1,2,0,3,4,5,6,7]

>>>id(x)                                  #列表在内存中的地址不变
50159368

#另外用 + 和 * 也可以向列表中添加元素,不过返回的是新列表,id发生改变
>>>x = [1,2,3]
>>>id(x) 
50231246

>>>x = x+[4]
>>>x
[1,2,3,4]

>>>x = x * 2
>>>x
[1,2,3,4,1,2,3,4]

>>>id(x)
50221243

2.下面说说三种删除元素的方法

>>>x = [1,2,3,4,5,6,7]
>>>x.pop()                            #取出并返回最后一个元素
7

>>>x.pop(0)                           #取出并返回第一个元素
>>>x
1

>>>x.clear()                          #删除所有元素
>>>x
[]

>>>x = [1,2,1,1,2]
>>>x.remove(2)                        #删除首个值为 2 的元素
>>>x
[1,1,1,2]

>>>del x[3]                           #删除指定位置的元素
>>>x
[1,1,1]

 注:在列表中间位置插入或删除元素会影响后面所有元素的下标,要尽力避免在列表中间位置进行插入和删除操作。

3.count()、index()函数

列表方法count()用于返回列表中指定元素出现的次数,index()用于返回指定元素在列表中首次出现的位置,如果该元素不在则抛出异常。

>>>x = [1,2,2,3,3,3,4,4,4,4]
>>>x.count(3)                           #列表中元素3的个数
3

>>>x.index(2)                           #元素2在列表中首次出现的位置(索引)
1

>>>x.index(4)
6

>>>5 in x                              #判断元素 5 是否在列表 x 中
False 

4.sort()、reverse() 和sorted()、reversed()

sort()和reverse()对列表进行的排序是原地排序,就是所排序后的列表代替的原列表。

>>>x = list(range(11))
>>>import random
>>>random.shuffle(x)                   #随机乱序
>>>x
[0,8,4,2,3,7,9,5,1,6,10]

>>>x.reverse()                         #逆序
>>>x
[10,6,1,5,9,7,3,2,4,8,0]

>>>x.sort()                            #顺序
>>>x
[0,1,2,3,4,5,6,7,8,9,10]

>>>x.sort(key=str)                     #转换成字符串后的大小排序
>>>x
[0,1,10,2,3,4,5,6,7,8,9]

而sorted()和reversed()这两个函数会得到新列表而不会对原列表做任何修改

>>>import random
>>>x = list(range(11))
>>>random.shuffle(x)
>>>x
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]

>>>sorted(x,key=str)
[0,1,10,2,3,4,5,6,7,8,9]

>>>list(reversed(x))
[9,8,7,6,5,4,3,2,10,1,0]

>>>x                                         #原列表 x 没有改变
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值