【问题标题】:What is a=b=c in python? [duplicate]python中的a = b = c是什么? [复制]
【发布时间】:2015-02-01 00:49:41
【问题描述】:

我很困惑,连续相等的=可以在python中使用:

a = b = c

这个语言功能叫什么?有什么我可以读到的吗?

可以生成4个等吗?

a = b = c = d

【问题讨论】:

    标签: python variables


    【解决方案1】:

    这只是将ab 声明为等于c 的一种方式。

    >>> c=2
    >>> a=b=c
    >>> a
    2
    >>> b
    2
    >>> c
    2
    

    所以你可以随心所欲地使用:

    >>> i=7
    >>> a=b=c=d=e=f=g=h=i
    

    您可以在此 Python 教程的Multiple Assignment 中阅读更多内容。

    Python 允许您将单个值分配给多个变量 同时地。例如:

    a = b = c = 1

    这里,创建了一个值为 1 的整数对象,并且所有三个 变量被分配到相同的内存位置。你也可以 将多个对象分配给多个变量。例如:

    a, b, c = 1, 2, "约翰"

    这里,两个值为 1 和 2 的整数对象被赋值给 变量 a 和 b,一个值为“john”的字符串对象是 赋值给变量 c。


    还有另一件奇葩的事!你可以像这样交换值:a,b=b,a:

    >>> a=2
    >>> b=5
    >>> a,b=b,a
    >>> a
    5
    >>> b
    2
    

    【讨论】:

      【解决方案2】:

      python 支持一次多变量赋值称为多重赋值。

      In [188]: a = b = c = d = 4
      
      In [189]: a
      Out[189]: 4
      
      In [190]: b
      Out[190]: 4
      
      In [191]: c
      Out[191]: 4
      
      In [192]: d
      Out[192]: 4
      
      In [193]: a = 2
      
      In [194]: b = 2
      

      immutable对象相同

      In [195]: a, b = 2 #int is a immutable object like `tuple`, `str`
      

      虽然这对于像listdictionary 这样的可变对象并不意味着 阅读mutable and immutable

      【讨论】:

        猜你喜欢
        • 2021-07-31
        • 2015-11-20
        • 2014-03-26
        • 2014-12-21
        • 1970-01-01
        • 2020-04-02
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        相关资源
        最近更新 更多