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知识分享或软件测试开发目录。