gpt4 book ai didi

python - 使用函数更改列表的值

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:42 25 4
gpt4 key购买 nike

我有一个预定义的列表,我想在函数结束时成为一个"new"列表。

例如

x = [4, 5, 6]
y = [1, 2, 3]

我想要的是这个功能:

extend_list_x(x, y)

做这个

x = [1, 2, 3, 4, 5, 6]

我试过返回 joined_list,但我不能改变 x 的值

x = [4, 5, 6]
y = [1, 2, 3]

def extend_list_x(x, y):
joined_list = [*y, *x]
global x
x = joined_list
return x

extend_list_x(x, y)

目前这是我的问题

SyntaxError: name 'x' is parameter and global

最佳答案

  • 首先,不惜一切代价避免在函数中使用global。函数有参数。使用它们(并可能返回值)
  • 然后,选择返回一个新列表或修改第一个列表:

由于左手的切片符号,这改变了 x:

def extend_list_x(x, y):
x[:] = y+x

或者甚至更好,不是完全分配 x 而是使用部分切片分配重用以前的 x 值。只需告诉 python 将右边的内容放在 before 索引 0 之前(前面的元素将被移动,因为目标长度是 <len(y) 因为它是 0):

def extend_list_x(x, y):
x[:0] = y

这样调用:

extend_list_x(x,y)

这个创建一个新列表并返回它,保持 x 不变

def extend_list_x(x, y):
return y+x

这样调用:

x = extend_list_x(x,y)

关于python - 使用函数更改列表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53906990/

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