gpt4 book ai didi

Pythonic 嵌套 for - Python 中的循环

转载 作者:行者123 更新时间:2023-12-04 10:31:57 25 4
gpt4 key购买 nike

我正在处理嵌套 for 循环的这段代码。 a_listb_list是元组列表,其中每个元组由两个张量 [(tens1, tens2), ...] 组成.我正在尝试计算每个 tens1 的相似度在 a_list到每个 tens1b_list .下面是我的代码。嵌套循环似乎是一个瓶颈。有没有更好的方法(pythonic)可以重写循环?

a2b= defaultdict(dict)
b2a= defaultdict(dict)
ab_sim = []

for a, vec_a in a_list:
for b, vec_b in b_list:
# Ignore combination if the first element in both a and b are same
if a[0] == b[0]:
continue
# Calculate cosine similarity of combination
sim = self.calculate_similarity(vec_a, vec_b )
a2b[a][b] = sim
b2a[b][a] = sim
ab_sim.append(sim)
calculate_similarity只是一种计算余弦相似度的方法。 a_listb_list可以是任何大小。我有 b2aa2b因为我需要它们进行其他计算。

最佳答案

您可以使用字典理解:

a2b = {a: {b: self.calculate_similarity(vec_a, vec_b )
for (b, vec_b) in b_list if a[0] != b[0]} for (a, vec_a) in a_list}

关于Pythonic 嵌套 for - Python 中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60378598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com