[英]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.