我想做的(C代码):

int a = 2, b = 3, c = 4;

int* arr[3] = {&a, &b, &c};

for (int i = 0; i < 3; ++i) {
    if (*(arr[i]) > 1) {
        *(arr[i]) = 1
    }
}

我希望Python对这段代码执行类似指针的行为。
>>> a = 2
>>> b = 3
>>> c = 4
>>> for x in [a, b, c]:
...     if x > 1:
...             x = 1
...
>>> a,b,c
(2, 3, 4)

如何在Python中实现类似C代码的行为?

最佳答案

也许这对你有帮助

a,b,c  =  [ 1 if i>1 else i for i in [ a, b, c ] ]
a,b,c = map( lambda x: 1 if x>1 else x, [a,b,c] ) #lambda or name of some function

关于python - 当添加到列表中时,为什么Python复制值而不是指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8743072/

10-11 12:30
查看更多