Python序列通用操作详解:索引、分片与常用函数
本文详细介绍Python中序列的六种通用操作:索引用于访问特定元素,分片通过切片语法获取子序列,序列相加合并同类型序列,乘法重复序列内容,成员资格检查元素存在性,以及使用len、min、max获取序列长度和最值。掌握这些操作是高效处理Python数据的基础。
Python序列基础概念
数据结构是指以某种方式组织在一起的数据元素的集合,这些元素可以是数字、字符,也可以是其他数据结构。在Python语言中,最基础的数据结构类型是序列(sequence)。序列中的每个元素都被分配了一个序号,也就是索引,用于标识元素的位置。需要注意的是,序列的第一个元素索引为0,第二个元素索引为1,依此类推。
Python内置了六种序列类型,分别是列表(list)、元组(tuple)、字符串(string)、Unicode字符串(unicode string)、缓冲区对象(buffer object)以及xrange对象。
所有序列类型都支持一组通用的操作,包括索引、分片、序列相加、乘法运算、成员资格检查、获取长度以及查找最小值和最大值。
序列通用操作详解
1. 索引操作
序列中的所有元素都拥有编号,从0开始依次递增。我们可以通过编号来访问序列中的特定元素。此外,Python支持从右向左进行索引,最右侧元素的索引为-1,向左依次递减。
>>> greeting='Hello'
>>> greeting[2]
'l'
>>> greeting[-1]
'o'
>>> 'stringtesting'[3] #可以对任何一个字符串进行索引,该字符串的第三个索引为'i'字符
'i'
>>> fourth=raw_input('Year: ')[3] #可以对输入的字符串进行索引,这样对输入的字符串索引为3的感兴趣
Year: 2014
>>> fourth
'4'
索引与分片
2. 分片操作
索引用于访问单个元素,而分片(slice)则用于访问一定范围内的元素。分片通过两个由冒号分隔的索引值来定义边界。需要注意的是,分片结果包含第一个索引对应的元素,但不包含第二个索引对应的元素。
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[2:4] #取索引为第二和第三的元素
[3, 4]
>>> number[-4:-1] #负数表明是从右开始计数
[7, 8, 9]
>>> number[-4:] #把第二个索引置空,表明包括到序列结尾的元素
[7, 8, 9, 10]
>>> number[:3] #同上,把第一个索引置空,表明包含序列开始的元素
[1, 2, 3]
>>> number[0:10:1] #默认在分片的时候,步长为1,这样指定步长为1,和默认的效果一样
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> number[0:10:2] #这里指定步长为2,这样就会跳过某些序列元素
[1, 3, 5, 7, 9]
>>> number[10:0:-1] #步长也可以是负数,但是第一个索引一定要大于第二个索引
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> number[10:0:-2]
[10, 8, 6, 4, 2]
当使用正数步长时,Python会从序列头部开始向右提取元素,直到最后一个元素;若使用负数步长,则从序列尾部开始向左提取,直到第一个元素。
序列相加与乘法
3. 序列相加
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'Hello '+'World!'
'Hello World!'
>>> [1,2,3]+'Hello'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
需要注意的是,虽然列表和字符串都属于序列类型,但尝试将它们直接相加会引发错误,因为它们是不同类型的数据,无法直接进行加法运算。
4. 乘法操作
将一个序列与数字x相乘,会生成一个新的序列。新序列由原序列的内容重复x次组成。
>>> 'python'*4
'pythonpythonpythonpython'
>>> [None]*4 #None为Python的内建值,这里创建长度为4的元素空间,但是什么元素也不包含
[None, None, None, None]
成员资格与统计函数
5. 成员资格检查
可以使用in运算符来检查某个值是否存在于序列中。如果存在,返回True;如果不存在,返回False。
>>> permission='rw'
>>> 'r' in permission
True
>>> 'x' in permission
False
6. 长度、最小值和最大值
Python提供了三个内置函数:len、min和max。len函数返回序列中包含的元素数量;min函数返回序列中的最小元素;max函数返回序列中的最大元素。
>>> number=[2,3,4,5,6,7,8,9,10]
>>> len(number)
9
>>> min(number)
2
>>> max(number)
10
>>> min(4,3,5) #函数的参数不用一定是序列,也可以是多个数字
3
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









