Может ли кто-нибудь объяснить разницу между ними и почему один из них дает неправильный результат; Переменные экземпляраPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Может ли кто-нибудь объяснить разницу между ними и почему один из них дает неправильный результат; Переменные экземпляра

Сообщение Anonymous »


Maybe a very noob question but the below gives wrong results when vecDict is initialized outside of init. Can someone please explain why..

class Vector: #vecDict = {} ## vecDict declared here gives wrong results vs in the init method. def __init__(self, nums): """ :type nums: List[int] """ self.vecDict = {} for i in range(len(nums)): self.vecDict=nums def getDict(self): return self.vecDict # Return the dotProduct of two sparse vectors def dotProduct(self, vec): print(vec.getDict()) print(vec.vecDict) """ :type vec: 'SparseVector' :rtype: int """ # print(vec.getDict()) dotProd = 0 secDict = vec.getDict() for k in secDict: if k in self.vecDict: dotProd += (self.vecDict[k] * secDict[k]) # print(self.vecDict) # print(secDict) return dotProd Vector object will be instantiated and called as:

v1 = Vector(numsA) v2 = Vector(numsB) ans = v1.dotProduct(v2) Ex input: numsA = [1,0,0,2,3]

numsB = [0,3,0,4,0]

ans = 8


Источник: https://stackoverflow.com/questions/781 ... es-a-wrong
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»