广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现在一行中交换两个变量
  • 655
分享到

Python实现在一行中交换两个变量

Python 交换两个变量Python交换变量 2022-11-11 02:11:35 655人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

我们已经讨论了在没有临时变量的情况下交换两个整数的不同方法。如何在不使用库函数的情况下换成一行? 1) Python: 在python中,有一个简单且语法简洁的结构来交换变量,我们只

我们已经讨论了在没有临时变量的情况下交换两个整数的不同方法。如何在不使用库函数的情况下换成一行?

1) Python:python中,有一个简单且语法简洁的结构来交换变量,我们只需要写“x, y = y, x”。

2)C/C++: 下面是一个普遍提供的经典解决方案: 

// 使用按位异或交换(C/C++ 中的错误解决方案)
x ^= y ^= x ^= y;

上述解决方案在 C/c++ 中是错误的,因为它会导致未定义的行为(编译器可以自由地以任何方式运行)。原因是,如果修改之间没有序列点,则在表达式中多次修改变量会导致未定义的行为。 但是,我们可以使用逗号来引入序列点。所以修改后的解决方案是 

// 使用按位异或交换(C/C++ 中的正确解决方案)
// 使用逗号引入的序列点。
(x ^= y), (y ^= x), (x ^= y);

3)Java: 在Java中,子表达式求值的规则是明确定义的。左侧操作数总是在右侧操作数之前计算。在 Java 中,表达式“x ^= y ^= x ^= y;” 不会根据 Java 规则产生正确的结果。它使 x = 0。但是,我们可以使用“x = x ^ y ^ (y = x);” 请注意,表达式是从左到右计算的。如果最初 x = 5 和 y = 10,则表达式等价于“x = 5 ^ 10 ^ (y = 5);”。请注意,我们不能像在 C/C++ 中那样在 C/C++ 中使用 this,它没有定义左操作数或右操作数是否由任何运算符执行

4)JavaScript: 使用析构赋值,我们可以简单地使用这一行来实现交换。 

[x,y]=[y,x]

C 程序实现在单行中交换两个变量

// C 程序在单行中交换两个变量
#include <stdio.h>
int main()
{
	int x = 5, y = 10;
	(x ^= y), (y ^= x), (x ^= y);
	printf("After Swapping values of x and y are %d %d", x,
		y);
	return 0;
}

使用 XOR 交换的 C++ 代码

// 使用 XOR 交换的 C++ 代码
#include <bits/stdc++.h>

using namespace std;

int main()
{
	int x = 5, y = 10;
	// 交换'x'和'y'以在一行中交换两个数字的代码
	x = x ^ y, y = x ^ y, x = x ^ y;
	// 打印交换的变量
	cout << "After Swapping: x = "
		<< x << ", y= " << y;
	return 0;
}

Java程序在一行中交换两个变量

// Java程序在一行中交换两个变量
class GFG {
	public static void main(String[] args)
	{
		int x = 5, y = 10;
		x = x ^ y ^ (y = x);
		System.out.println(
			"After Swapping values"
			+" of x and y are " + x
			+ " " + y);
	}
}

Python 程序在一行中交换两个变量

# Python 程序在一行中交换两个变量
x = 5
y = 10
x, y = y, x
print("After Swapping values of x and y are", x, y)

C# 程序在单行中交换两个变量

// C# 程序在单行中交换两个变量
using System;

class GFG {
	static public void Main()
	{
		int x = 5, y = 10;
		x = x ^ y ^ (y = x);
		Console.WriteLine("After Swapping values "
						+ "of x and y are " + x + " "
						+ y);
	}
}

PHP程序在单行中交换两个变量

<?php
// PHP程序在单行中交换两个变量

	// Driver Code
	$x = 5;
	$y = 10;
	($x ^= $y);
	($y ^= $x);
	($x ^= $y);
	echo "After Swapping values of x and y are "
								,$x," ", $y;

javascript 程序在单行中交换两个变量

<script>
// javascript 程序在单行中交换两个变量

	let x = 5, y = 10;
	(x ^= y), (y ^= x), (x ^= y);
	document.write("After Swapping values of x and y are ", x + " ",
		y);
</script>

输出

After Swapping values of x and y are 10 5

替代解决方案: 

  • 使用 swap():C++ 库函数
  • b = (a + b) – (a = b);
  • a += b – (b = a);
  • a = a * b / (b = a)
  • a = a ^ b ^ (b = a)

时间复杂度:O(1) 

辅助空间:O(1)

到此这篇关于Python实现在一行中交换两个变量的文章就介绍到这了,更多相关Python交换变量内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现在一行中交换两个变量

本文链接: https://www.lsjlt.com/news/120117.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现在一行中交换两个变量
    我们已经讨论了在没有临时变量的情况下交换两个整数的不同方法。如何在不使用库函数的情况下换成一行? 1) Python: 在Python中,有一个简单且语法简洁的结构来交换变量,我们只...
    99+
    2022-11-11
    Python 交换两个变量 Python交换变量
  • python如何交换两个变量
    这篇文章给大家分享的是有关python如何交换两个变量的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。交换两个变量交换是彼此交换两个变量的值的过程。 这在计算机科学的许多操作中可能很有用。 在这里,我编写了两种主要...
    99+
    2023-06-27
  • 如何在python中交换两个变量的值
    如何在python中交换两个变量的值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
  • 使用python怎么实现两个变量值进行交换
    本篇文章给大家分享的是有关使用python怎么实现两个变量值进行交换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python 两个变量值交换方法一:c = ...
    99+
    2023-06-15
  • php如何实现两个变量交换
    这篇文章主要介绍了php如何实现两个变量交换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。两个变量交换//方式一:比较清晰,有变量产生 $t...
    99+
    2022-10-19
    php
  • python 实现两个变量值进行交换的n种操作
    python 两个变量值交换 方法一: c = 0 c= a a= b b= c 方法二: a,b = b,a 这是python的基本方法 方法三:(只用两个变量实现) a = a+b b = a-...
    99+
    2022-06-02
    python 两个变量值 值交换
  • python怎么交换两个变量的值
    这篇文章主要介绍了python怎么交换两个变量的值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python怎么交换两个变量的值文章都会有所收获,下面我们一起来看看吧。本文教程操作环境:windows7系统、P...
    99+
    2023-06-30
  • Python 如何实现变量交换
    简洁优雅的 C 写法: int a = 1;  int b = 2;  int temp;  temp = a;  a = b;  b = temp;  简洁优雅的 Python 写...
    99+
    2022-11-13
    Python实现变量交换 Python 变量交换
  • PHP实现交换两个整型变量的方法有哪些
    这篇文章主要介绍“PHP实现交换两个整型变量的方法有哪些”,在日常操作中,相信很多人在PHP实现交换两个整型变量的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP实现交换两个整型变量的方法有哪些...
    99+
    2023-06-25
  • 在Python中交换变量的方法
    这篇文章将为大家详细讲解有关在Python中交换变量的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。交换变量在有些编程语言中,交换两个变量一般需要使用临时变量,而在P...
    99+
    2022-10-19
    python
  • python如何实现变量的交换
    小编给大家分享一下python如何实现变量的交换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!变量的交换a = 1  b&...
    99+
    2023-06-27
  • php怎么实现两个变量值的互换
    在PHP中,可以使用一个额外的变量来存储其中一个变量的值,然后再将其赋值给另一个变量,从而实现两个变量值的互换。以下是一个示例代码:...
    99+
    2023-08-19
    php
  • python如何实现拆箱变量交换
    小编给大家分享一下python如何实现拆箱变量交换,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!拆箱变量交换>>> a, b = ...
    99+
    2022-10-19
    python
  • python怎么实现就地交换变量
    这篇文章主要介绍python怎么实现就地交换变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!就地交换变量在许多其他编程语言中,只能通过定义附加的temp(临时)变量来交换两个或多个变量的值。假设你想交换x和y:te...
    99+
    2023-06-27
  • 如何使用es6实现两个变量的转换
    本篇内容主要讲解“如何使用es6实现两个变量的转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用es6实现两个变量的转换”吧!4种实现:1、采用二进制异或的方法来交换数值,语法“a = ...
    99+
    2023-07-04
  • Java不借助第三变量怎么实现两数交换
    本文小编为大家详细介绍“Java不借助第三变量怎么实现两数交换”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java不借助第三变量怎么实现两数交换”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基操两数交换最简单...
    99+
    2023-06-29
  • python如何在一行中分配多个变量
    这篇文章将为大家详细讲解有关python如何在一行中分配多个变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在一行中分配多个变量您可以使用逗号分隔变量和值,从而将多个值分配给多个变量:这在解构/解包序列...
    99+
    2023-06-27
  • python怎么在一行中分配多个变量
    这篇文章将为大家详细讲解有关python怎么在一行中分配多个变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在一行中分配多个变量你可以使用逗号分隔变量和值,来为多个变量分配多个值:当对序列(如列表或元组...
    99+
    2023-06-27
  • java如何在不用第三个变量的情况下交换两个字符串
    这篇文章给大家分享的是有关java如何在不用第三个变量的情况下交换两个字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何在不用第三个变量的情况下交换两个字符串这道题就有点意思了,对吧尤其是前提条件,不使用第...
    99+
    2023-06-27
  • Java不借助第三变量实现两数交换的示例
    目录基操进阶更进阶PS:不借助第三个变量实现两个变量的交换(数字或者字符串)基操 两数交换最简单最容易理解的就是借助第三变量 public void swapOne(){ ...
    99+
    2022-11-13
    Java 两数交换
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作