python迭代工具及使用例子

python迭代工具按迭代协议不断调用可迭代对象的next方法。

python迭代工具有:for循环、列表解析、in成员关系、map()、sorted()、zip()等。

1.1 map()

用法

map(func, *iterables) --> map object

描述

python的内置函数map(),将可迭代对象(iterables)的每个元素都调用一次函数(func),返回map。

参数

func:函数名;

iterables:可迭代对象。

出参

返回map,是一个迭代器。

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> list(map(str.upper,open(path,encoding='utf-8')))
["S='梯阅线条'\n", 'PRINT(S)\n', 'L=LIST(S)\n', 'PRINT(L)']

1.2 sorted()

用法

sorted(iterable)

描述

python的sorted()内置函数,对可迭代对象的每个元素进行排序。

参数

iterable:可迭代对象。

出参

返回新列表。

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> sorted(open(path,encoding='utf-8'))
['L=list(S)\n', "S='梯阅线条'\n", 'print(L)', 'print(S)\n']

1.3 reduce()

用法

reduce(function, sequence) -> value

描述

python的reduce()方法,将两个参数的函数(function)累计应用于序列(sequence)的项。第1和2个项调用函数后的结果,与第3个项作为入参再次调用函数。比如:

# ((((1+2)+3)+4)+5)
>>> functools.reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
15

参数

function:函数名

sequence:序列

出参

示例

# ((((1+2)+3)+4)+5)把文件内容连接起来
>>> import functools,operator
>>> path=r'E:\documents\F盘\iterator.py'
>>> functools.reduce(operator.add,open(path,encoding='utf-8'))
"S='梯阅线条'\nprint(S)\nL=list(S)\nprint(L)"

1.4 filter()

用法

filter(function or None, iterable) --> filter object

描述

python的filter()内置函数,可迭代对象(iterable)的元素,依次调用函数(function),如果满足满足函数条件,则返回,否则过滤掉,最终返回满足条件的元素组成的filter对象。

参数

function:函数名,可以是匿名函数。

iterable:可迭代对象。

出参

filter对象,为迭代器。

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> list(filter(bool,open(path,encoding='utf-8')))
["S='梯阅线条'\n", 'print(S)\n', 'L=list(S)\n', 'print(L)']

1.5 join()

用法

str.join(self, iterable)

描述

python字符串的join()方法,将可迭代对象(iterable)的元素以指定字符串(str)连接在一起,生成新的字符串。

参数

str:连接字符串。

iterable:可迭代对象。

出参

字符串

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> '@@'.join(open(path,encoding='utf-8'))
"S='梯阅线条'\n@@print(S)\n@@L=list(S)\n@@print(L)"

1.6 {}

描述

python的{}表达式可以生成集合、字典,也可用于集合、字典解析。

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> {l for l in open(path,encoding='utf-8')}
{'L=list(S)\n', 'print(S)\n', "S='梯阅线条'\n", 'print(L)'}
>>> {k:v for k,v in enumerate(open(path,encoding='utf-8'))}
{0: "S='梯阅线条'\n", 1: 'print(S)\n', 2: 'L=list(S)\n', 3: 'print(L)'}

1.7 *args

描述

python的函数入参*args,将可迭代对象值,解包为单个参数。

示例

>>> path=r'E:\documents\F盘\iterator.py'
>>> def fargs(a,b,c,d):print(a,b,c,d,sep='@')
>>> fargs(1,2,3,4)
1@2@3@4
>>> L=list('tyxt')
>>> fargs(*L)
t@y@x@t
>>> fargs(*open(path,encoding='utf-8'))
S='梯阅线条'
@print(S)
@L=list(S)
@print(L)

版权声明©

本文首发微信公众号:梯阅线条

原创不易,转载请注明出处。

更多内容参考python知识分享或软件测试开发目录。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容