gpt4 book ai didi

python - 用于应用具有多个变量的单个表达式的内置函数

转载 作者:行者123 更新时间:2023-12-01 01:20:27 24 4
gpt4 key购买 nike

是否有现有的 Python 内置函数可以分配两个或多个变量并在分配单个表达式时返回多个值?例如:

假设:

attrs, patterns, weight = [] * 3

等同于:

attrs, patterns, weight = [], [], []

最佳答案

现有的最佳语法是

attrs, patterns, weight = [[] for i in range(3)]

这并不是对 []、[]、[] 的真正改进。不过,它对于复杂表达式具有优势。

如果你想要一个函数,你就会遇到 Python 函数接受对象而不是表达式的问题。函数不能重复计算其参数表达式。如果你想编写一个函数,你必须将表达式包装在 lambda 或其他东西中:

def n_times(constructor, n):
return [constructor() for i in range(n)]

attrs, patterns, weight = n_times(lambda: [], 3)
# or
attrs, patterns, weight = n_times(list, 3)

有一些诱人但错误的选择:

# Mistake
attrs = patterns = weight = []
# Also a mistake
attrs, patterns, weight = [[]]*3

它将相同列表分配给每个变量,而不是创建单独的列表,因为Python赋值不会复制,并且列表乘法不会复制元素,只会复制对元素的引用。

关于python - 用于应用具有多个变量的单个表达式的内置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com