gelen, Python, iki farklı uzunlukta listeleri ekleyin başlatmak Bir örnekBen burada sağ farklı uzunluk başlamasından sonraki iki listeyi eklemek istediğiniz doğru
[3, 0, 2, 1]
[8, 7]
Beklenen sonuç var Bu liste polinomların katsayılarını temsil eder
İşte benim uygulamam
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
Bu iyi bir iş, sadece daha iyi, daha temiz kod yapmak için bilmek ister misiniz? Python her zaman temiz kodda vurgulandığı gibi, temiz, pythonik kod yazmanın herhangi bir yolu olduğunu bilmek ister misiniz? Eğer katsayıları ters bir şekilde sıralanır bir kongre seçerseniz
@Haidro: Ben öyle düşünmüyorum. Örneği açıklığa kavuşturmaya çalıştım. Timothy, bu açıklama yanlışsa, lütfen düzeltin. –
@TimPietzcker Görüyorum, ama 7 + 1 9 değil mi? Ya da 8 + 1 ama sonra 7 + 2! = 10 – TerryA
@Haidro: Oops :) –