python交换两个变量的值方法

大部分语言,例如c语言,交换两个变量的值需要使用中间变量。

例如交换a,b

伪代码:

tmp = a
a = b
b = tmp

python里面可以实现无临时变量的交换

(a,b) = (b,a)

对于它的交换原理我深感好奇,因为这意味着python解释器很有可能做了件更多的工作。

如果说变量可以直接交换,那么列表的元素呢?

lists[i], lists[j] =lists[j], lists[i]

是否可以实现列表i,j元素的互换,如果可以实现,原理是什么?

可以实现交换,至于原理,可以用id查看变量或元素的地址。因为python中的变量名类似于指针指向了某个地址,其交换也就是指向改变了。

至于底层的原理,要找一个了解python的人请教一下

以上这篇python交换两个变量的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python 实现两个列表里元素对应相乘的方法

    方法一: 结合zip函数,使用map函数: List1 = [1,2,3,4] List2 = [5,6,7,8] List3 = map(lambda (a,b):a*b,zip(List1,List2)) print List3 方法二: 把列表转化为数组,使用np.multiply函数 List = [1,2,3] List2 = [5,6,7] List3 = np.multiply(np.array(List1),np.array(List2)) print List3.tolist(

  • Python实现判断并移除列表指定位置元素的方法

    本文实例讲述了Python实现判断并移除列表指定位置元素的方法.分享给大家供大家参考,具体如下: 问题很简单,输入一个列表和索引,若索引超出列表范围则返回源列表,否则删除指定索引位置的元素后返回列表,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:移除列表指定位置的元素 ''' def remove_pos_ele(num_list,k): ''''' ''' length=len(num_list)

  • python 实现交换两个列表元素的位置示例

    在IDLE 中验证如下: >>> numbers = [5, 6, 7] >>> i = 0 >>> numbers[i], numbers[i+1] = numbers[i+1], numbers[i] >>> numbers [6, 5, 7] python是可以一次赋值两个变量的!谢谢! 以上这篇python 实现交换两个列表元素的位置示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 对Python中实现两个数的值交换的集中方法详解

    如下所示: #定义两个数并赋值 x = 1 y = 2 #第1种方式:引入第三方变量 z = 0 z = x x = y y = z #第2种:不引入第三方变量 x = x+y y = x-y x = x-y #第3种:推荐 x,y = y,x print("x=%d,y=%d"%(x,y)) 以上这篇对Python中实现两个数的值交换的集中方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python中交换两个元素的实现方法

    Python既具有普通程序开发语言的特点,也具有Matlab语言用于数值计算的特点,,当然了数值计算是由其其强大的第三方库numpy实现的,矩阵在python中数据类型是ndarray,python中交换两个数值的代码和交换同一矩阵(ndarray)中不同向量的写法是不一样的. 以下是用Python原生的数据结构list实现的交换 >> a = [1,2,3] >> b = [4,5,6] >> a [1,2,3] >> b [4,5,6] >>

  • 关于python列表增加元素的三种操作方法

    1.insert方法,该方法包含两个参数,第一个参数为插入的位置参数,第二个参数为插入内容 a = [0,0,0] b = [1,2,3] a.insert(0,b) print a 输出: [[1, 2, 3], 0, 0, 0] 2.extend方法,该方法的参数为一个列表,将该指数所指定到的列表插入到原列表中 a = [0,0,0] b = [1,2,3] a.extend(b) print a 输出: [0, 0, 0, 1, 2, 3] 3.append方法,该方法后面只能带上一个参数

  • python交换两个变量的值方法

    大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的交换 (a,b) = (b,a) 对于它的交换原理我深感好奇,因为这意味着python解释器很有可能做了件更多的工作. 如果说变量可以直接交换,那么列表的元素呢? lists[i], lists[j] =lists[j], lists[i] 是否可以实现列表i,j元素的互换,如果可以实现,原理是什么? 可以实现交换,至于原理,可以用

  • Python3之不使用第三方变量,实现交换两个变量的值

    method 1: a,b = b,a method 2: a = a+b b = a-b a = a-b 以上这篇Python3之不使用第三方变量,实现交换两个变量的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • java如何交换这两个变量的值方法介绍

    1.借助中间量交换 int x = 10; int y = 20; int temp = x; x = y; y = temp; 此种方法可以将中间量看成空杯,即把temp看成是空杯, 把x看成是装有白酒的杯子,把y看成是装有红酒的杯子 int temp = x; 把白酒倒到空杯中,此时temp装有白酒,x变成空杯 x = y; 把y中的红酒倒到x空杯中,此时x装有红酒,y变成空杯 y = temp; 把白酒倒到y空杯中,此时x装有红酒,y装有白酒,实现x和y的互换 2.数值相加减交换 int

  • PHP不用第三变量交换2个变量的值的解决方法

    以前做过一道php面试题是这样的:不使用第三个变量实现交换两个变量的值.一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了.网上找到的几种方法总结如下: 复制代码 代码如下: //字符串版本 结合使用substr,strlen两个方法实现$a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(s

  • Java 交换两个变量的数值实现方法

    一.参数传递方法 为解决标题问题,首先介绍参数传递方法.目前各类程序设计语言的参数传递方法主要有三种: 1.按值传递 2.按引用传递 3.按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值:按引用传递表示方法(函数)接收的调用者提供的变量地址:按指针传递表示方法(函数)接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针所指向的地址. 二.Java参数传递方法 Java提供的参数传递方法,很遗憾只有一种,按值传递.也就是说,方法得到的是所有参数

  • JavaScript交换两个变量方法实例

    这篇文章主要介绍了JavaScript交换两个变量方法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在平时的业务开发或者面试过程中,经常会遇到交换两个变量这种问题,于是,个人总结以下几种交换变量的方法: 1.方案一 使用一个临时变量来交换 2.方案二 使用ES6解构赋值语法来交换 3.方案三 利用数组 根据运算符的优先级,首先执行b=a,将a的值赋值给b,然后通过数组索引将b赋值给a,一行代码解决两值的交换. 4.方案四 先让a变成a与b

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

    我们已经讨论了在没有临时变量的情况下交换两个整数的不同方法.如何在不使用库函数的情况下换成一行? 1) Python: 在Python中,有一个简单且语法简洁的结构来交换变量,我们只需要写“x, y = y, x”. 2)C/C++: 下面是一个普遍提供的经典解决方案: // 使用按位异或交换(C/C++ 中的错误解决方案) x ^= y ^= x ^= y; 上述解决方案在 C/C++ 中是错误的,因为它会导致未定义的行为(编译器可以自由地以任何方式运行).原因是,如果修改之间没有序列点,则在

  • Java中不用第三个变量来互换两个变量的值

    我们先看看使用第三变量的方法.(开胃菜) class Swap{ public static void main(String[] args){ int a = 3; int b = 5; int c; c = a; //把a的值先存到c a = b; //把b存给a b = c; //把存在c的值倒赋给b System.out.println("a="+a); //a==5 System.out.println("b="+b); //b==3 } } 下面是运行结

  • Python函数返回不定数量的值方法

    Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回. 使用代码验证: def func_a(): return 1, 2, 3, 4 if __name__ == '__main__': temp = func_a() print(type(temp)) 运行结果,确认返回的是一个tuple, <class 'tuple'> 稍微修改代码: def func_a(*args): return 1, 2, 3,

随机推荐