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