繁体   English   中英

加快Python 2.7中的功能

[英]Speed up a function in Python 2.7

我想知道,是否有一种方法可以加快此处显示的功能。 我知道这看起来不太pythonic ...

def MakePairs(inputlist):
   '''
    @param inputlist: [[["a","b","c"],["d","e","f"]],[["g","h","i"],["j","k","l"]],...]
    @return returnlist: [[["a","d"],["b","e],["c","f"]],[["g","j"],["h","k"],["i","l"]],...]
    '''
    returnlist = []
    for Pair in xrange(len(inputlist)):
        dummy2 = []
        for item in xrange(len(inputlist[Pair][0])):
            dummy = [Pair[0][item], Pair[1][item]]
            dummy2.append(dummy)
        returnlist.append(dummy2)

    return returnlist

编辑:返回列表中的对必须是列表。

提前致谢!!!

看起来像zip()

>>> l = [[["a","b","c"],["d","e","f"]],[["g","h","i"],["j","k","l"]]]
>>> [zip(*item) for item in l]
[[('a', 'd'), ('b', 'e'), ('c', 'f')], [('g', 'j'), ('h', 'k'), ('i', 'l')]]

因此,您的功能将是:

def MakePairs(inputlist):
    return [zip(*item) for item in inputlist]

另外,考虑使用itertools.izip()而不是zip()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM