gpt4 book ai didi

python - 将列表推导式传递给 Python 中的函数

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:13 25 4
gpt4 key购买 nike

我有一个函数,我想将列表理解传递给它作为输入。我收到有关 my_list 未定义的错误。我知道我可以将 my_list 放在函数之外,但实际上该列表是作为函数的一部分生成的。

实际的定义很复杂,所以这里是简化的示例:

def my_def(list_comp):
global my_list
my_list = [[1,2],[3,4]]
list_comp_output = list_comp
return list_comp_output

print my_def([x[1] for x in my_list])

最佳答案

实际上Python 中我们拥有的只是运行时;不存在单独的编译时间1。(在解释器的范围内)。并且函数也不异常(exception)。

所以你在这里所做的就是将 my_list 定义为全局变量,并尝试在列表理解中使用它,而 python 没有定义这样的东西。

您可以只运行您的函数 1 次,然后使用该列表理解:

def my_def(list_comp):
global my_list
my_list = [[1,2],[3,4]]
list_comp_output = list_comp
return list_comp_output


my_def([])
print my_def([x[1] for x in my_list])
[2,4]

此外,我在这里没有看到任何逻辑内容:)如果您想使用全局变量,只需在模块范围内定义 if (在函数之外并将其传递给您的函数。)

def my_def(list_comp):
# do stuff with list_comp
return list_comp_output


my_list= # a costume list
li=[x[1] for x in my_list]
print my_def(li)

或更优雅地在函数中进行列表理解:

def my_def(list_comp):
return [x[1] for x in list_comp]
<小时/>

<子>1.《学习 Python》作者:Mark Lutz

关于python - 将列表推导式传递给 Python 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30918004/

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