美文网首页
【2017-09-26】迭代器与生成器(四)

【2017-09-26】迭代器与生成器(四)

作者: 小蜗牛的成长 | 来源:发表于2017-09-27 21:15 被阅读0次
  • 可迭代对象进行排列组合
    迭代遍历可迭代对象所有可能的排列或组合
    运用itertools模块的permutations()combinations()函数
#组合
>>> from itertools import permutations
>>> data=[1,2,3]
>>> for p in permutations(data):
    print(p)
    
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
#>>> 指定返回结果中每种排列的长度(元素个数)
>>> for p in permutations(data,2):
    print(p)

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
>>> 

组合

>>> from itertools import combinations
>>> data=[1,2,3]
>>> for c in combinations(data, 3):
    print(c)

(1, 2, 3)
>>> 
>>> for c in combinations(data,2):
    print(c)
    
(1, 2)
(1, 3)
(2, 3)
>>> 
  • 不同集合上元素的迭代
    你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。
    运用itertools模块chain()函数,它接受一个可迭代对象列表作为
    输入,可迭代对象类型无要求,并返回一个迭代器
>>> from itertools import chain
>>> a=[1,2,3,4]
>>> b=set('x','y','z')
>>> for i in chain(a,b):
    print(i)

相关文章

网友评论

      本文标题:【2017-09-26】迭代器与生成器(四)

      本文链接:https://www.haomeiwen.com/subject/coouextx.html