当前位置 : 主页 > 编程语言 > python >

itertools模块

来源:互联网 收集:自由互联 发布时间:2022-06-20
itertools.filterfalse() # 创建一个迭代器,从可迭代的元素中筛选出仅返回false的元素 import itertools l1 = itertools.filterfalse(lambda x: x4, [1,2,3,4,5,6,7,8,9]) print(l1) # itertools.filterfalse object at 0x0083E658
  • itertools.filterfalse()
# 创建一个迭代器,从可迭代的元素中筛选出仅返回false的元素
import itertools

l1 = itertools.filterfalse(lambda x: x>4, [1,2,3,4,5,6,7,8,9])
print(l1) # <itertools.filterfalse object at 0x0083E658>
print(list(l1)) # [1,2,3,4]
  • itertools.dropwhile()
# 跳过可迭代对象的开始部分
# 比如你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。
# 使用:传递一个函数对象和一个可迭代对象。返回一个迭代器对象,丢弃原有序列中直到函数返回False之前的所有元素,然会返回后面所有元素

# 示例
with open('xx.txt') as f;
for line in f:
print(line, end='')


"""打印内容
# User Database
#
# Note that this file is consulted directly only when the system is running
# in single-user mode. At other times, this information is provided by
# Open Directory.
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
"""
# 如果你想跳过开始部分的注释行的话,可以这样做
from itertools import dropwhile
with open('xx.txt') as f:
for line in dropwhile(lambda x: x.startwith('#'), f):
print(line, end='')

# 参考itertools.islice() # 知道跳过的元素的个数,可以使用这个
  • itertools.takewhile()
# 迭代一个序列,直到指定的谓词首次变为假
import itertools

lst = [7,5,10,4,9,6,2,1]

print(list(itertools.takewhile(lambda x:x>4, lst)))
# 输出
[7,5,10] # 会将lst中的元素一个一个拿到lambda中进行比较,当遇到一个为false时,那么就结束


-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!


【文章原创作者:cc防御 http://www.558idc.com/gfip.html提供,感恩】
上一篇:celery定时任务
下一篇:没有了
网友评论