在 Python 中,_
(下划线)通常用作占位符,表示一个变量名,但程序中不会实际使用这个变量的值。
目录
- 忽略循环变量:
- 忽略函数返回值:
- 在解释器中使用:
- 举例子
- 1. 忽略循环变量
- 2. 忽略不需要的函数返回值
- 3. 多次使用 `_` 忽略多个值
- 4. 忽略值的解包
- 5. 在列表推导式中使用 `_`
- 6. 在解释器中使用 `_`
- 7. 忽略字典遍历中的键或值
它常见于以下几种情况:
忽略循环变量:
在循环中,如果你不需要使用循环变量的值,可以用 _
作为变量名。这表明你知道有这个变量,但你不会使用它。
例如:
for _ in range(10):print("This will print 10 times")
在这个例子中,循环变量的值(0 到 9)没有被使用,仅用于控制循环执行 10 次。
忽略函数返回值:
有时候函数会返回多个值,但你只关心其中的一部分,可以使用 _
来忽略那些你不需要的返回值。
例如:
def get_coordinates():return (10, 20, 30)x, y, _ = get_coordinates()
在这个例子中,函数 get_coordinates()
返回三个值 (10, 20, 30)
,但我们只关心前两个值 x
和 y
,第三个值被 _
忽略。
在解释器中使用:
在 Python 交互式解释器中,_
被用来表示最后一个执行结果的值。
例如:
>>> 5 + 3
8
>>> _
8
总结起来,_
主要用作占位符,表示一个不重要的变量或者忽略的值。
举例子
当然可以,以下是几个使用 _
的常见例子:
1. 忽略循环变量
当你需要循环一定次数,但不使用循环变量时,可以用 _
来表示:
for _ in range(5):print("This will print 5 times")
此时,_
只是一个占位符,表示你不关心循环变量的值。
2. 忽略不需要的函数返回值
当一个函数返回多个值,而你只需要其中的一部分时,可以用 _
来忽略不需要的值:
def get_coordinates():return (10, 20, 30)x, y, _ = get_coordinates()
print(x, y) # 输出: 10 20
在这里,我们只关心前两个返回值 x
和 y
,第三个值被 _
忽略。
3. 多次使用 _
忽略多个值
当一个函数返回多个值,而你只需要其中的一部分时,可以用 _
来忽略多个不需要的值:
def get_data():return (1, 2, 3, 4, 5)a, _, b, _, c = get_data()
print(a, b, c) # 输出: 1 3 5
在这里,我们只关心返回的第一个、第三个和第五个值,其他值被 _
忽略。
4. 忽略值的解包
当你需要从一个可迭代对象中提取部分值时,可以用 _
忽略不需要的部分:
data = [1, 2, 3, 4, 5]first, *_, last = data
print(first, last) # 输出: 1 5
在这里,* _
忽略中间的所有值,只保留第一个和最后一个值。
5. 在列表推导式中使用 _
当你使用列表推导式(或其他推导式)时,可以用 _
来表示一个不关心的变量:
squares = [x * x for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]# 使用 _ 生成一个不关心的变量
[print("This will print 10 times") for _ in range(10)]
在这里,列表推导式中的 _
表示我们不关心实际的值,只需要重复执行 print
语句 10 次。
6. 在解释器中使用 _
在 Python 交互式解释器中,_
可以用来表示最后一个执行结果的值:
>>> 5 + 3
8
>>> _
8
>>> _ * 2
16
在这个例子中,_
保存了前一个表达式的结果 8
,然后可以在后续的计算中使用。
7. 忽略字典遍历中的键或值
当遍历字典时,如果你只需要键或值,可以用 _
忽略另一个:
my_dict = {'a': 1, 'b': 2, 'c': 3}# 忽略值
for key, _ in my_dict.items():print(key) # 输出: a b c# 忽略键
for _, value in my_dict.items():print(value) # 输出: 1 2 3
在这里,使用 _
忽略字典遍历中的值或键,分别只处理键或值。