《Pyhon基础教程 第2版·修订版》 第2章 列表和元组 (学习笔记·三)

本文深入探讨了Python中的列表和元组两种序列类型的基本操作及方法,包括列表的创建、修改、分片赋值等,以及元组的特点和应用场景。

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

2.3 列表:Python的“苦力”

注:列表是可改变的

2.3.1 list函数

>>> list('Hello')
['H', 'e', 'l', 'l', 'o']
注意,list函数适用于所有类型的序列而不只是字符串。


2.3.2 基本的列表操作

1.改变列表:元素赋值

>>> x = [1,1,1]
>>> x[1] = 2
>>> x
[1, 2, 1]

2.删除元素

>>> names = ['Alice','Beth','Cecil','Dee-Dee','Earl']
>>> del names[2]
>>> names
['Alice', 'Beth', 'Dee-Dee', 'Earl']

3.分片赋值

分片是一个非常强大的特性,分片赋值操作更加显现它的强大。

>>> name = list('Perl')
>>> name
['P', 'e', 'r', 'l']
>>> name[2:] = list('ar')
>>> name
['P', 'e', 'a', 'r']
不等长赋值

>>> name
['P', 'e', 'a', 'r']
>>> name = list('Perl')
>>> name[1:] = list('ython')
>>> name
['P', 'y', 't', 'h', 'o', 'n']
分片赋值语句可以在不需要替换任何原有元素的情况下插入新的元素

>>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4]
>>> numbers
[1, 2, 3, 4, 5]

>>> numbers = [1,2,3,4,5]
>>> numbers[1:4] = []
>>> numbers
[1, 5]

2.3.3 列表方法

方法可以这样进行调用

对象·方法(参数)

1. append

>>> #append方法用于在列表末尾追加新的对象
>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]


2. count

>>> #count方法统计某个元素在列表中出现的次数
>>> ['to','be','or','not','to','be'].count('to')
2
>>> x = [1,2],1,1,[2,1,[2,2]]
>>> x.count(1)
2
>>> x.count([1,2])
1


3. extend

>>> #extend方法可以在列表的末尾一次性追加另一个序列中的多个值
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

4.index

>>> #index方法用于从列表中找出某个值第一个匹配项的索引位置
>>> knights = ['We','are','the','knights','who','say','ni']
>>> knights.index('who')
4
>>> knights[4]
'who'

5. insert

>>> #insert方法用于将对象插入到列表中
>>> numbers = [1,2,3,5,6,7]
>>> numbers.insert(3,'four')
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]


6. pop

>>> #pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值
>>> x = [1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]

7.remove

>>> #remove方法用于移除列表中某个值的第一个匹配项
>>> x = ['to','be','or','not','to','be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']

8. reverse

>>> # reverse方法将列表中的元素反向存放
>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

9. sort

>>> #sort方法用于在原位置对列表进行排序
>>> x = [4,5,6,1,7,9]
>>> x.sort()
>>> x
[1, 4, 5, 6, 7, 9]

注意:sort方法调用过后,x的序列就是已经排序的,无法回到原来状态

>>> x = [4,5,6,1,7,9]
>>> y = sorted(x)
>>> x
[4, 5, 6, 1, 7, 9]
>>> y
[1, 4, 5, 6, 7, 9]

10.高级排序

>>> cmp(42,32)
1
>>> cmp(99,100)
-1
>>> cmp(10,10)
0

>>> numbers = [5,2,7,9]
>>> numbers.sort(cmp)
>>> numbers
[2, 5, 7, 9]

>>> x = [4,5,6,1,7,9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 5, 4, 1]


2.4 元组:不可变序列

元组和列表一样,也是一种序列。唯一的不同是元组不能修改。

>>> 42,#实现一个值的元组。实现方法有些奇特---必须加个逗号,即使只有一个值
(42,)

下面的一个例子体现了逗号的神奇:

>>> 3*(40+2)
126
>>> 3*(40+2,)
(42, 42, 42)

2.4.1 tuple函数

tuple函数的功能与list函数基本上是一样的:以一个序列操作为参数并把它转换为元组。如果参数就是元组,那么该参数就会原样返回。

>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abc')
('a', 'b', 'c')
>>> tuple((1,2,3))
(1, 2, 3)

2.4.2 基本元组操作

>>> x = 1,2,3
>>> x[1]
2
>>> x[0:2]
(1, 2)

2.4.3 那么,意义何在

a.元组可以映射(和集合的成员)中当作键使用---而列表则不行。

b.元组作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。


2.5 小结

重点内容:序列、成员资格、方法。

2.5.1 本章的新函数

cmp(x,y)        #比较两个值
len(seq)        #返回序列的长度
list(seq)       #把序列转换成列表
max(args)       #返回序列或者参数集合中的最大值
min(args)       #返回序列或者参数集合中的最小值
reversed(seq)   #对序列进行反向迭代
sorted(seq)     #返回已排序的包含seq所有元素的列表
tuple(seq)      #把序列转换成数组













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值