忽略 Python 中的多个返回值
使用带有占位符变量的解包来忽略多个返回值,例如 _, _, c, _ = my_func()
。 左侧的变量需要与右侧的可迭代对象中的值完全相同。
def my_func():
return ['a', 'b', 'c', 'd']
# ✅ by unpacking values
_, _, c, _ = my_func()
print(c) # 👉️ 'c'
_, b, *_ = my_func()
print(b) # 👉️ 'b'
我们使用下划线
_
作为变量名。 有一个约定使用下划线作为我们不打算使用的占位符变量的名称。
左侧的变量需要与右侧的可迭代对象中的值完全相同。
这是因为我们将可迭代对象的值解包到变量中。
如果我们需要忽略可迭代末尾的项目,请使用可迭代解包运算符。
def my_func():
return ['a', 'b', 'c', 'd']
_, b, *_ = my_func()
print(b) # 👉️ 'b'
print(_) # 👉️ ['c', 'd']
*
可迭代解包运算符使我们能够在函数调用、推导式和生成器表达式中解包可迭代对象。
*
运算符可用于忽略任意数量的返回值。
def my_func():
return ['a', 'b', 'c', 'd']
_, *_, c, d = my_func()
print(c) # 👉️ 'c'
print(d) # 👉️ 'd'
但是请注意,只能使用一种解包操作。 换句话说,我们只能在左侧使用 *_
一次。
如果我们使用解包运算符来存储您打算在代码中使用的值,请相应地命名变量。
def my_func():
return ['a', 'b', 'c', 'd']
_, _, *rest = my_func()
print(rest) # 👉️ ['c', 'd']
或者,我们可以直接访问我们需要的项目。
通过访问索引处的项目来忽略多个返回值
要忽略多个返回值:
- 如果我们需要获取单个值,请调用该函数并访问特定索引处的结果。
- 如果需要获取多个值,请调用该函数并使用切片。
def my_func():
return ['a', 'b', 'c', 'd']
c = my_func()[2]
print(c) # 👉️ 'c'
d = my_func()[3]
print(d) # 👉️ 'd'
c, d = my_func()[2:4]
print(c) # 👉️ 'c'
print(d) # 👉️ 'd'
# --------------------------------
result = my_func()
c = result[2]
print(c) # 👉️ 'c'
d = result[3]
print(d) # 👉️ 'd'
如果我们需要从可迭代对象中获取特定项目,请在索引处访问可迭代对象。
Python 索引是从零开始的,因此列表中的第一项的索引为 0,最后一项的索引为 -1
或 len(my_list) - 1
。
如果需要获取可迭代的切片,可以使用列表切片。
def my_func():
return ['a', 'b', 'c', 'd']
c, d = my_func()[2:4]
print(c) # 👉️ 'c'
print(d) # 👉️ 'd'
列表切片的语法是 my_list[start:stop:step]
。
开始索引是包含的,而停止索引是排除的(最多,但不包括)。
但是,多次调用函数比调用一次函数并将结果存储在变量中效率更低。
def my_func():
return ['a', 'b', 'c', 'd']
result = my_func()
c = result[2]
print(c) # 👉️ 'c'
d = result[3]
print(d) # 👉️ 'd'
c, d = result[2:4]
print(c) # 👉️ 'c'
print(d) # 👉️ 'd'
我们将调用函数的结果存储在一个变量中,并多次访问该列表。
如果你使用 numpy
,你可以从 iterable
中返回一个 numpy 数组。
import numpy as np
def my_func():
return np.array(['a', 'b', 'c', 'd'])
a, d = my_func()[[0, 3]]
print(a) # 👉️ 'a'
print(d) # 👉️ 'd'
我们可以点击上面的运行示例,查看实际的运行效果
可以在多个非连续索引处访问 Numpy 数组。
请注意
,我们使用了两组方括号。
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。