序列类型(列表和元祖包括字符串等)通用的的内建函数

Posted 明王不动心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列类型(列表和元祖包括字符串等)通用的的内建函数相关的知识,希望对你有一定的参考价值。

在python中,有许多序列的内建函数,部分函数的使用范围更广,适用于可迭代对象。

一些常见的序列类型的内置函数。

序号

函数     

功能                                      
1 len()  
2 min()、max()  
3 sorted()  
4 reversed()  
5 sum()  
6 enumerate()  
7 zip()  

 

 

 

 

 

 

 

 

 

1.len()对于列表或者元祖来说返回其中元素的个数。对于字符串来说,返回字符串的长度,就是字符串包含的字符个数。

>>> name
[kebi, maoxian, xiaoniao, xinye]
>>> number = (1,3,4,2)
>>> st = Hello,World
>>> len(number)
4
>>> len(name)
4
>>> len(st)   #字符串也是序列的一种特殊情况
11

 2.max():返回列表或者元祖中元素的最大值,对字符串也能操作,但是没什么意义。

    min():返回列表或者元祖中元素的最小值

    关于字符串的顺序可以对照ASCII表来排序。47-57为阿拉伯数字,65到90为大写字母,97到122为小写字母。

>>> number = (1,3,4,2)
>>> name = [kebi, maoxian, xiaoniao, xinye]
>>> st = Hello,World
>>> max(number)
4
>>> max(name)
xinye
>>> max(st)
r
>>> ord(W)   #调用ord()函数可以查询字符串的顺序
87
>>> ord(r)
114
>>> min(number)
1
>>> min(name)
kebi
>>> min(st)
,

3.sorted():接受一个可迭代对象作为参数,返回一个有序的列表。

>>> number
(1, 3, 4, 2)              #元祖
>>> st
Hello,World             #字符串
>>> s                        
[They, stamp, them, when, samll]   #列表

>>> sorted(number)
[1, 2, 3, 4]            #元祖变为列表
>>> sorted(st)             
[,, H, W, d, e, l, l, l, o, o, r]    #字符串变为列表
>>> sorted(s)
[They, samll, stamp, them, when]   

有点类似于list()的功能,只是list()不会自动排序

>>> list(st)
[H, e, l, l, o, ,, W, o, r, l, d]

4.reversed():接受一个序列作为参数,返回一个以逆序访问的迭代器。

>>> reversed(number):   #直接访问是不行的
  File "<stdin>", line 1
    reversed(number):
                    ^
SyntaxError: invalid syntax

>>> number
(1, 3, 4, 2)
>>> st
Hello,World
>>> s
[They, stamp, them, when, samll]

>>> for i in reversed(number):    #作用于元祖
...     print(i)
...
2                         #结果从后往前打印
4
3
1

>>> for i in reversed(st):     #作用于字符串
...     print(i)
...
d
l
r
o
W
,
o
l
l
e
H

>>> for t in reversed(s):    #作用于列表
...     print(t)
...
samll
when
them
stamp
They

5.sum():返回序列和可选数字参数的总和。不是数字不行,数字类型的字符串也不行。

>>> number
(1, 3, 4, 2)
>>> sum(number)
10
>>> sum(number,5)
15

>>> number2 = [1,2,3,4]
>>> stt = 1234
>>> sum(number2)
10
>>> sum(stt)         #字符串不行
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: int and str

>>> s                     #不是数字不行
[They, stamp, them, when, samll]
>>> sum(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: int and str

6.enumerate():接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成由序列中每个元素的index值和元素值组成的元祖。

               注意:enumerate()的机制和reversed()类似,返回的是一个对象,如果需要显示还要提取。

>>> enumerate(number)
<enumerate object at 0x0000015E5B56E678>  #返回的是一个对象

>>> for i in enumerate(number):
...     print(i)
...
(0, 1)
(1, 3)                  #对字符串、元祖和列表都有用
(2, 4)
(3, 2)

>>> for i in enumerate(st):
...     print(i)
...
(0, H)
(1, e)
(2, l)
(3, l)
(4, o)
(5, ,)
(6, W)
(7, o)
(8, r)
(9, l)
(10, d)

>>> for i in enumerate(name):
...     print(i)
...
(0, kebi)
(1, maoxian)
(2, xiaoniao)
(3, xinye)

7.zip():以可迭代对象作为参数,返回一个由每个序列的第一个元素组、第二个元素....组成的元祖所组成的列表。只要是可迭代对象都行,列表、元祖、字符串可以混合。

>>> name
[kebi, maoxian, xiaoniao, xinye]
>>> st
Hello,World
>>> s
[They, stamp, them, when, samll]
>>> number
(1, 3, 4, 2)

>>> zip(name,s)    #返回的是一个对象
<zip object at 0x0000015E5B5734C8>

>>> for i in zip(name,s):        #列表+列表
...     print(i)
...
(kebi, They)
(maoxian, stamp)
(xiaoniao, them)
(xinye, when)

>>> for i in zip(s,name):        #以长度最短的一个序列为结束标志
...     print(i)
...
(They, kebi)
(stamp, maoxian)
(them, xiaoniao)
(when, xinye)

>>> for i in zip(name,number):    #列表+元祖
...     print(i)
...
(kebi, 1)
(maoxian, 3)
(xiaoniao, 4)
(xinye, 2)

>>> for i in zip(name,st):   #列表+字符串
...     print(i)
...
(kebi, H)
(maoxian, e)
(xiaoniao, l)
(xinye, l)

>>> for i in zip(name,number,st):  #多个可以组合
...     print(i)
...
(kebi, 1, H)
(maoxian, 3, e)
(xiaoniao, 4, l)
(xinye, 2, l)

 

以上是关于序列类型(列表和元祖包括字符串等)通用的的内建函数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之通用序列类型数据详解

Python基础-列表元祖字典字符串

python列表的内建函数

python的内建函数isinstance

Python列表

基础知识回顾——通用序列操作