python序列数据类型之序列数据的基本操作

1. 序列的长度、最大值、最小值、求和

创新互联建站是一家专注于成都做网站、网站制作与策划设计,陆良网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:陆良等地区。陆良做网站价格咨询:13518219792

通过内置函数len()、max() .minO可以获取序列的长度、序列中元索的最大值、序列中元素的最小值。通过内置函数sum()可以获取列表或元组中的各元素之和:如果有非数值元索,则导致TyeEror对于字符串(str)和字节数据(bytes).也将导致TypeError.

序列数据的求和示例。

t1=(1,2,3,4)

sum(t1)

2. 序列的索引访问操作

序列表示可以通过索引下标访问的可迭代对象。用户可以通过整数下标访问序列s的元素。

s[i]

访问序列s在索引i处的元素

索引下标从0开始,第1个元素为s[0],第2个元素为s[1],依此类推,最后一个元素为s[Ien(s)-1].

如果索引下标越界,则导致IndexError; 如果索引下标不是整数,则导致TypeError.

例如:

s= 'abc'

s[0] #输出:'a'

s[3] # IndexError: string index out of range

s['a'] # Typerror: string indices must be integers

3. 序列的切片操作

通过切片(slice)操作可以截取序列s的部分。 切片操作的基本形式如下 。

s[i:j]

或者

s[i:j:k]

其中,i为序列开始下标(包含s[i]); j为序列结束下标(不包含s[j]); k为步长。如果省略则从下标0开始:如果省略j,则直到序列结束为止;如果省略k,则步长为1。

注意: 下标也可以为负数。如果截取范围内没有数据,则返回空元组;如果超过下标范围,则不报错。

4. 序列的连接和重复操作

通过连接操作符+可以连接两个序列(s1和s2),形成一个新的序列对象;通过重复操作符。可以重复一个序列n次(n 为正整数)。序列连接和重复操作的基本形式如下。

s1+s2 或者 s×n 或者 n×s

连接操作符+和重复操作符×。也支持复合赋值运算,即+=和×=,

序列的连接和重复操作示例。

s1 ='abc'

s2 ='def'

s1+s2 #输出:“abcdef”

s1 * 3 #输出:“abcabcabc”

s1 += s2 #输出:“abcdef”

s2 *= 2 #输出:“defdef”

5. 序列的成员关系操作

用户可以通过下列方式之一判断元素 x是否存在于序列s中:

方式  判断

xins  如果为True,则表示存在

xnotins  如果为True,则表示不存在

s.count(x)  返回x在s(指定范围[start, end))中出现的次数

s. index( x [ , i [ , j ] ])  返回x在s(指定范围[1,j))中第一次出现的下标

其中指定范围 [ i, j ) 表示从下标 i (包括,默认为 0 )开始到下标j结束(不包括 , 默认为 len(s)).

对于s. index( value, [start, [stop ] ] ) 方法,如果找不到,则导致ValueError.例如:

'Tobeor not tobe, this is a question'. index('123')

ValueError: substr ing not found

序列中元 素存在性的判断示例。

s= 'Good , better , best! '

'o' in s # True

'g' not in s #True

s. count('e') # 3

s. index('e', 10) # 10

6. 序列的比较运算操作

两个序列支持比较运算符(<.<=.==、!=、>=、>),字符串比较运算按顺序逐个元索进行比较。

序列的比较运算示例。

>>> s1 = 'abc'

>>> s2= 'abe'

>>> s3= 'abcd'

>>> s4= 'cba'

>>> s1 > s4

False

>>> s2<= s3

True

>>>s1 == s2

True

>>>s1 != s3

True

>>>'a ' > 'A'

True

>>> 'a' >= ' '

True

7. 序列的排序操作

通过内置函数sorted()可以返回序列的排序列表。通过类reversed构造函数可以返回序列的反序迭代器。内置函数sorted()的形式如下。

sorted(iterable, key= None, reverse= False)

#返回序列的排序列表

其中,key是用于计算比较键值的函数(带一个参数),例如key= str. lower.如果reverse= True,则反向排序。

序列的排序操作示例。

>>> s1 = 'axd'

>>>sorted(s1)

['a', 'd', 'x']

>>> s2=(1,4,2)

>>> sorted(s2)

[1,2,4]

>>>sorted(s2,reverse = true)

[4,2,1]

8. 内置函数all()和any()

python any()和all()用法

any(x)判断x对象是否为空对象,如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true

all(x)如果all(x)参数x对象的所有元素不为0、’’、False或者x为空对象,则返回True,否则返回False

>>> any('123')

True

>>> any([0,1])

True

>>> any([0,'0',''])

True

>>> any([0,''])

False

>>> any([0,'','false'])

True

>>> any([0,'',bool('false')])

True

>>> any([0,'',False])

False

>>> any(('a','b','c'))

True

>>> any(('a','b',''))

True

>>> any((0,False,''))

False

>>> any([])

False

>>> any(())

False

>>> all(['a', 'b', 'c', 'd']) #列表list,

True

>>> all(['a', 'b', 'c', 'd']) #列表list,元素都不为空或0

True

>>> all(['a', 'b', '', 'd']) #列表list,存在一个为空的元素

False

>>> all([0, 1,2, 3]) #列表list,存在一个为0的元素

False

>>> all(('a', 'b', 'c', 'd')) #元组tuple,元素都不为空或0

True

>>> all(('a', 'b', '', 'd')) #元组tuple,存在一个为空的元素

False

>>> all((0, 1,2, 3)) #元组tuple,存在一个为0的元素

False

>>> all([]) # 空列表

True

>>> all(()) # 空元组

True

>>> #注意:空元组、空列表返回值为True,这里要特别注意

>>> all(('', '', '', '')) #元组tuple,全部为空的元素

False

>>> all('')

True 无锡人流手术多少钱 http://www.chnk120.com/

>>> #如果all(x)参数x对象的所有元素不为0、''、False或者x为空对象,则返回True,否则返回False

>>>

9. 序列的拆分

变量个数和序列长度相等

使用赋值语句可以将序列值拆分、然后赋值给多个变量.形式如下,

变量1,变量.,变量n .序列或可迭代对象

若变量个数和序列的元素个数不一致,将导致ValueError.例如:

>>>a,b= (1, 2)

>>> a, b

(1, 2)

>>>a, b,c. (1, 2)

valueError: not enough values to umpack (expected3, got.2)

>>>data = (1001, '张三,(80,79, 92))

>>> sid, name, scores = data

>>> scores

(80, 79, 92)

>>> sid, name, (chinese, nath, english) = data

>>> nath

79

变量个数和序列长度不等

如果序列长度未知,可以使用 * 元组变量,将多个值作为元组赋值给元组变量。在一个赋值语句中, * 元组变量只允许出现一次,否则将导致SyntaxError.例如:

>>> first, * middles, last = range(10)

>>> middles

[1, 2, 3, 4,5, 6, 7, 8]

>>> first, second, third, * lasts = range(10)

>>> lasts

[3, 4, 5,6, 7,8, 9]

>>> * firsts, last3, last2, last1 = range(10)

>>> firsts

[0, 1, 2, 3, 4,5, 6]

>>> first, * middles, last = sorted([70, 85, 89, 88, 86, 95, 89]) #去掉最高分和最低分

>>> sum(niddles) / len(middles) #计算去掉最高分和最低分后的平均值

87.4

使用临时变量 _

如果只需要部分数据序列的其他位置可以使用临时变量 _ 。例如:

>>> _, b, _ =(1,2,3)

>>>b

2

>>> record = ( 'Zhangsan', 'szhang@abc. com', 021 - 62232333', 13912349876')

>>> name, _ , * phones = record

>>> phones

[ 021 - 62232333','13912349876']


当前文章:python序列数据类型之序列数据的基本操作
文章转载:http://hbruida.cn/article/ighehh.html