如何理解以下代码片段?

时间:2019-05-21 19:38:59

标签: python-3.x

我想出了理解上的困惑,对此代码的正确解释是什么?

a = [(0,1),(1,2),(2,3)]

result = sum(n for _,n in a)

print(result)

2 个答案:

答案 0 :(得分:1)

我想您的困惑来自,sum也接受第二个论点。

在这种情况下,仅将一个参数传递给sum,因为该行的值为

result = sum(n for (_, n) in a)

此行仅对元组列表中的所有第二个元素求和,等效于以下内容:

list_of_tuples = [(0,1),(1,2),(2,3)]

total = 0
for (first_element, second_element) in list_of_tuples:
    total += second_element
print(total)

从技术上讲,_是一个正常的有效标识符名称,但是惯例是将其用于代码下一部分所忽略的值。

答案 1 :(得分:0)

我认为另一种思考方式是:

result=0
for _,n in a:
    result += n

例如,您可以用“ _,n”代替其他两个变量,例如“ x,y”。