Python _意思是在for循环

时间:2017-05-14 17:17:00

标签: python python-3.x

我不是一位经验丰富的Python程序员,我看到了以下无法理解的代码。不幸的是,语法非常棘手,难以在互联网上搜索。虽然我确实找到了'_'和'__'的一些解释,但我不确定以下代码是否对'_'有任何特殊含义

if not allowed_positions:
    return (0, 0)
_, point = max([(self.point(graph.find_point(p), self), p) for p in allowed_positions])

在上面的代码中,我不明白为什么在点= ...之前有一个带逗号' - ,'的下划线。

2 个答案:

答案 0 :(得分:5)

_仅用作丢弃变量的占位符。 让我们假设有一个函数返回一个带有两个元素的元组,而我只对元组的第二部分感兴趣,那么通常的做法就是使用_作为我不需要的变量。 e.g。

>>> def return_tuple():
...     return (24,7)
... 
>>> _, days = return_tuple()
>>> days
7

答案 1 :(得分:1)

_是您不需要存储数据的变量的占位符。

您可以将其用于tuple unpacking,并且通常可以使用下划线表示该值不会在以后的脚本中使用。

如果你有这样的话:soldiers = [('Steve', 'Miller'), ('Stacy', 'Markov'), ('Sonya', 'Matthews'), ('Sally', 'Mako')]

而且,你只想得到你会这样做的姓:

for _, last_name in soldiers:
    # print the second element
    print(last_name)

而不是:

for first_name, last_name in soldiers:
    print(last_name

因为您不需要使用first_name。您将其替换为_,因此您不会存储不必要的变量