gpt4 book ai didi

python - 列表在 python 中是不可变的吗?它们是否在函数中传递了值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:34 26 4
gpt4 key购买 nike

def threshold(the_list,thresholding_value,upper_val,lower_value):
ret_list=list(the_list)
for each_item in ret_list:
if each_item <= thresholding_value:
each_item=lower_value
else:
each_item=upper_val
return ret_list

temp=[-1,2,5,3,-1,5,32,-6]
ttt=r.threshold(temp,0,1,0)

执行后我仍然得到相同列表的值

最佳答案

列表不是不可变的,但是当你循环一个列表时,循环控制变量会得到每一项的副本;它不是它的别名。因此更改它不会影响列表。

执行此操作的更 Pythonic 方式是列表推导式返回新列表:

def threshold(the_list, threshold, upper, lower):
return [lower if item <= threshold else upper for item in the_list]

threshold([-1,2,5,3,-1,5,32,-6],0,1,0)
# => [0, 1, 1, 1, 0, 1, 1, 0]

关于python - 列表在 python 中是不可变的吗?它们是否在函数中传递了值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34194530/

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