voglio aggiungere due elenco di diversi inizio lunghezza dalla destra Ecco un esempioAggiungere due elenchi di diverse lunghezze in python, a partire da destra
[3, 0, 2, 1]
[8, 7]
Risultato atteso:
[3, 0, 10, 8]
Questa lista rappresenta il coefficiente di polinomi
Ecco la mia implementazione
class Polynomial:
def __init__(self, coefficients):
self.coeffs = coefficients
def coeff(self, i):
return self.coeffs[-(i+1)]
def add(self, other):
p1 = len(self.coeffs)
p2 = len(other.coeffs)
diff = abs(p1 - p2)
if p1 > p2:
newV = [sum(i) for i in zip(self.coeffs, [0]*diff+other.coeffs)]
else:
newV = [sum(i) for i in zip([0]*diff+self.coeffs, other.coeffs)]
return Polynomial(newV)
def __add__(self, other):
return self.add(other).coeffs
Questo lavoro va bene, voglio solo sapere in ogni caso di fare meglio, codice più pulito? Come pitone ha sempre sottolineato al codice pulito, voglio sapere c'è un modo per scrivere un codice più pulito e pitonioso?
@Haidro: Io non la penso così. Ho cercato di chiarire l'esempio. Timothy, se questo chiarimento è sbagliato, correggilo. –
@TimPietzcker Vedo, ma non è 7 + 1 9? O è 8 + 1 ma poi 7 + 2! = 10 – TerryA
@Haidro: Oops :) –