【发布时间】:2020-04-15 23:01:42
【问题描述】:
我有两个函数,即funct#1 和funct#2 (Python 3.x),它们都有相同的返回值。 我是 Python 的新手,对 C/C++ 指针的概念知之甚少。更改一个变量不会反映到另一个变量,除非它不是“按引用传递”,即指针变量。
#<funct#1>
def normalize_vector_list(vector_list):
normal_vector_list = vector_list
for idx, vector in enumerate(vector_list):
vector_normal = cosine_normalization(vector.values())
for key in vector.keys():
vector[key] = vector[key]/vector_normal
normal_vector_list[idx] = vector
return normal_vector_list
#<funct2>
def normalize_vector_list(vector_list):
normal_vector_list = vector_list
for vector in vector_list:
vector_normal = cosine_normalization(vector.values())
for key in vector.keys():
vector[key] = vector[key]/vector_normal
return normal_vector_list
顺便说一下,上面提到的另一个函数,即 cosine_normalization() 是:
def cosine_normalization(vector):
return math.sqrt(sum(i**2 for i in vector))
输入参数:vector_list
vector_list 是一个字典列表,其中 vector_list[0] 紧随其后
{'争议':3.2988353690005856,'new':0.8321110382957757,'规则':'专利':27.617294602624597,'基于计算机':'发明':'发明':10.075902209486438,'PUT':1.7977654932882667,'持有'7977654932882667 ': 4.981825347696424, '到期': 2.209272915852394, '最后': 0.8984861072406485, '分钟': 2.5922651681085, '干预': 4.607168188650764, '波兰'2480325}188650764, '波兰'2480359
输出: 输出是 normalized vector_list,其中每个值都通过除以所有值的平方和进行归一化。例如。 normal_vector_list [121] 是{'高速':0.05849977431100451,'net':0.1026094844409006,'连接':0.232742384495927,'证明':0.060052144835127615,'流行':0.03800614678175985,'Ever':0.034539324332692536 ,'报告':0.026431249541766944,'人':0.09935938942455483,'签名':0.04328893168172482,'宽带':0.041893629209266864,'最后':0.012408508988158977,'三':0.03841976800723183 ......}
【问题讨论】:
-
vector_list是什么?一个小例子就足够了。 -
@afghani_iit 您提到的
input的预期输出和实际输出是多少?问题不清楚。你说的both have same return value是什么意思?? -
@Raj 输出是归一化的vector_list,其中每个值通过除以所有值的平方和来归一化。例如。 normal_vector_list [121]是{ '高速':0.05849977431100451 '净':0.1026094844409006, '连接':0.232742384495927, '证明':0.060052144835127615, '流行':0.03800614678175985 '永远':0.034539324332692536, '报告':0.026431249541766944, '人':0.09935938942455483,'签名':0.04328893168172482,'宽带':0.41893629209266864,'最后':0.012408508988158977,'三':0.031841976800......
-
你的问题是什么?
标签: python dictionary hashmap pass-by-reference defaultdict