gpt4 book ai didi

python - C++ 和 Python 中的交换有什么区别?

转载 作者:行者123 更新时间:2023-11-28 20:10:23 26 4
gpt4 key购买 nike

关于swap,在C++中,我们可以通过std::swap(x, y);来交换两个。xy 作为 reference 传递到 swap。

但是在 Python 中,我们是否也可以编写一个 swap 函数,它可以像在 C++ 中一样进行交换?我实现的交换的 Python 版本有点愚蠢:

def swap_in_python(x, y):
return y, x

#so when swapping a and b, I usually do it like this
a, b = swap_in_python(a, b)

这确实很麻烦,但我们不能像在 C++ 中那样传递 reference 或 pointer,对吧?

编辑:

有没有其他方法不使用赋值(不使用=)?

最佳答案

实际上,在 Python 中,它要优雅得多:

(a,b) = (b,a)

您根本不必调用函数。而且,是的,根据评论,此处不需要括号。我仍然更喜欢它们,因为我相信它们使意图更清晰。


以下编辑:

Is there any other way not employing assignment (not using =)?

可能吧,虽然我不知道,但我无法想象它会比上面显示的基本方法更简单或更具可读性。如果您正在寻找一种更复杂的方式来做一些可以简单完成的事情,我是否建议您的思维方式有误? :-)

关于python - C++ 和 Python 中的交换有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642909/

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