关于看似相似但在某种程度上不同的 Python 语法的问题

Posted

技术标签:

【中文标题】关于看似相似但在某种程度上不同的 Python 语法的问题【英文标题】:Question concerning seemingly similar but somehow different Python Syntax 【发布时间】:2021-05-22 20:25:39 【问题描述】:

我认为这应该可行,但它没有(产生 0):

n1 = [1, 2, 3, 4]
n2 = [5, 6, 7, 8]

pair = zip(n1, n2)

dif = sum(abs(v1 - v2) for v1, v2 in pair)
print(dif)

但是忽略我的 pair 变量并直接使用代码就可以了(产量 16):

dif = sum(abs(v1 - v2) for v1, v2 in zip(n1, n2))

他们两个不应该得出相同的答案吗?

【问题讨论】:

我都得到了 16 个。 【参考方案1】:

第一种方法应该有效。如果我猜为什么它不是,也许你已经在你的生成器表达式中使用它之前迭代了“pair”变量

【讨论】:

是的,我也是这么想的,可能表达式之前已经用过生成器了 你们是对的人,谢谢你们帮助我。我简直是愚蠢的...我使用了打印语句print(*pair) 来检查结构。我不知道这可能会产生影响。再次感谢! :) @Seth250,@圆顶

以上是关于关于看似相似但在某种程度上不同的 Python 语法的问题的主要内容,如果未能解决你的问题,请参考以下文章

余弦计算相似度理解以及计算

LSH︱python实现局部敏感随机投影森林——LSHForest/sklearn

em,i,strong,b标签的区别

数据集 Node.js 中的最近邻

DTW (Dynamic Time Warping) 动态时间规整

Machine Translation仅由单语数据生成双语词典