列表和元组的概念和操作(1)
发布时间 2023-09-13 12:08:57作者: Luohaijun
通用序列
通用的序列操作
- 索引:可以使用例如
greeting = 'Hello' greeting[0]这种操作获取第一个元素
- 切片:
- 切片适用于提取序列中的一部分,例如
number = [1,2,3,4,5,6] number[1:4],输出的结果为[2,3,4],第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号(即不包含它)
- 简写切片:如果想获得从中间到末尾的全部元素,我们不必把第一个或者第二个索引全部表明,例如:现在我们要获得序列的后三位,那么我可以用
number[-3:],想要获得前三位的话,那么我们可以用number[:3],扩大思路,如果要复制全部的序列,可以将两个索引省略,即number[:]
- 更大步长的切片:我们通常的切片的省略了一个参数,即步长,在普通切片中,步长为1.现在我们如果指定了步长,将会跳过一些元素,例如
number[0:10:2]输出的结果为 1,3,5,7,9];当然,步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素,例如number[8:3:-1]输出的结果为[9,8,7,6,5],number[10:0:-2]输出的结果为[10,8,6,4,2],有一种情况就是第一个索引和第二个索引的顺序要与步长的正负匹配,否则会出现下列情况:number[0:10:-2]输出的结果为[]。也可以省略两个索引达到相同的效果。
- 序列相加:只能把相同类型的序列相加进行拼接,否则会报错。
- 序列乘法:类似复制序列,例如:
'python' * 2输出会得到'pythonpython'
- 成员资格:检查特定的值是否包含在序列中,可以使用运算符in。在检查是否满足指定的条件,并返回相应的值:满足时返回True,不满足时返回False。例如
subject = '$$$ Get rich now!!! $$$' '$$$' in subject输出的结果为True
- 实例:
datebase = [
['albert', '1234'],
['dilbert', '4242'],
['smith', '7524'],
['jones', '9843']
]
username = input('User name: ')
pin = input('PIN code: ')
if [username, pin] in datebase: print('Access granted')
输出: User name: albert
PIN code: 1234
Access granted
- 序列长度,最小值,最大值:内置函数len,max和min,其中len返回序列包含的元素个数,而min和max分别返回序列中最小和最大的元素