美文网首页
说说itertools模块里的combinations

说说itertools模块里的combinations

作者: Ryan_Yang | 来源:发表于2017-05-14 02:03 被阅读0次

    itertools基本是我用过的python内置模块里的top one,超级无敌好用,各种迭代器简直不要太六,仿佛nltk一般神奇。今天来温习一下最常用的combinations

    combinations()

    描述:Return r length subsequences of elements from the input iterable. 根据输入的数据,创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序 (不带重复)。def combinations()我觉得暂时先不用深究,看看这个function的原型吧:

    combinations(iterable, r)

    在这里iterable就是你输入的数据,r就输出子序列的长度,举个栗子:

    com1=combinations(‘abcd’, 2)
    for i in com1:
        print i
    
    output:
    ('A', 'B')
    ('A', 'C')
    ('A', 'D')
    ('B', 'C')
    ('B', 'D')
    ('C', ‘D’)
    
    com2=combinations(‘abcd’, 3)
    for i in com2:
        print i
    
    output:
    ('A', 'B', 'C')
    ('A', 'B', 'D')
    ('A', 'C', 'D')
    ('B', 'C', ‘D')
    

    在自迭代的时候,combinations() 的iterable还可以是list或者dict,以下是一个我最近一个项目里用到的场景:

    for value in raw_data.itervalues():
        com=combinations(value, 2)
    

    注意,在这里,raw_data是一个dict,所以我们必须先声明调用的是values,我们可以单独对字典里的值做自迭代。同样的,这个项目也是为了构建社交网络,最后还是要感叹一下python的强大,能内置itertools这种神奇的模块。

    相关文章

      网友评论

          本文标题:说说itertools模块里的combinations

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