intelligenteste Weg, um das verbinden zweier Listen in eine formatierte Zeichenkette

Können sagen, ich habe zwei Listen der gleichen Länge:

a = ['a1', 'a2', 'a3']
b = ['b1', 'b2', 'b3']

und ich möchte, um die folgende Zeichenfolge:

c = 'a1=b1, a2=b2, a3=b3'

Was ist der beste Weg, dies zu erreichen?

Habe ich folgende Implementierungen:

import timeit

a = [str(f) for f in range(500)]
b = [str(f) for f in range(500)]

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)

t = timeit.Timer(setup='from __main__ import func1', stmt='func1()')
print 'func1 = ' + t.timeit(10) 

t = timeit.Timer(setup='from __main__ import func2', stmt='func2()')
print 'func2 = ' + t.timeit(10)

und die Ausgabe ist:

func1 = 32.4704790115
func2 = 0.00529003143311

Haben Sie einige trade-off?

  • +1 ich fand keinen Grund für die -1 (auch wörtlich).
  • Hallo. Neue Lösung in meiner Antwort, siehe es bitte.
InformationsquelleAutor Jib | 2011-09-01
Schreibe einen Kommentar