richtigen Stil für element-Weise Operationen auf Listen ohne numpy (python)

Ich würde gerne operieren, die auf Listen-element element ohne Verwendung von numpy, zum Beispiel, ich möchte add([1,2,3], [2,3,4]) = [3,5,7] und mult([1,1,1],[9,9,9]) = [9,9,9], aber ich bin mir nicht sicher, welchen Weg zu tun, wird es als 'richtige' Stil.

Den beiden Lösungen, die ich kam, waren

def add(list1,list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]+list2[x])
    return list3

def mult(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]*list2[x])
    return list3

def div(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]/list2[x])
    return list3

def sub(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]-list2[x])
    return list3

wo jeder Betreiber erhält eine separate Funktion

und

def add(a,b)
    return a+b
def mult(a,b)
    return a*b
def div(a,b)
    return a/b
def sub(a,b)
    return a-b
def elementwiseoperation(list1, list2, function):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(function(list1[x],list2[x]))
    return list3

wo alle grundlegenden Funktionen definiert sind, und ich habe eine separate Funktion zu verwenden, Sie auf jedes element. Ich Magermilch durch die PEP8, aber nicht finden, alles direkt relevant. Welcher Weg ist besser?

InformationsquelleAutor shimao | 2013-07-11
Schreibe einen Kommentar