a = ['a1', 'a2', 'a3']b = ['b1', 'b2', 'b3']pat = '%s=%%s, %s=%%s, %s=%%s'print pat % tuple(a) % tuple(b)
给
a1=b1, a2=b2, a3=b3
。
然后:
from timeit import Timerfrom itertools import izipn = 300a = [str(f) for f in range(n)]b = [str(f) for f in range(n)]def func1(): return ', '.join([aa+'='+bb for aa in a for bb in b if a.index(aa) == b.index(bb)])def func2(): list = [] for i in range(len(a)): list.append('%s=%s' % (a[i], b[i])) return ', '.join(list)def func3(): return ', '.join('%s=%s' % t for t in zip(a, b))def func4(): return ', '.join('%s=%s' % t for t in izip(a, b))def func5(): pat = n * '%s=%%s, ' return pat % tuple(a) % tuple(b)d = dict(zip((1,2,3,4,5),('heavy','append','zip','izip','% formatting')))for i in xrange(1,6): t = Timer(setup='from __main__ import func%d'%i, stmt='func%d()'%i) print 'func%d = %s %s' % (i,t.timeit(10),d[i])结果
func1 = 16.2272833558 heavyfunc2 = 0.00410247671143 appendfunc3 = 0.00349569568199 zipfunc4 = 0.00301686387516 izipfunc5 = 0.00157338432678 % formatting



