Meaning of using commas and underscores with Python assignment operator?

后端 未结 4 1896
我在风中等你
我在风中等你 2020-11-27 15:32

Reading through Peter Norvig\'s Solving Every Sudoku Puzzle essay, I\'ve encountered a few Python idioms that I\'ve never seen before.

I\'m aware that a function can

相关标签:
4条回答
  • 2020-11-27 16:17

    d2, = values[s] is just like a,b=f(), except for unpacking 1 element tuples.

    >>> T=(1,)
    >>> a=T
    >>> a
    (1,)
    >>> b,=T
    >>> b
    1
    >>> 
    

    a is tuple, b is an integer.

    0 讨论(0)
  • 2020-11-27 16:22

    The _ in the Python shell also refers to the value of the last operation. Hence

    >>> 1
    1
    >>> _
    1
    

    The commas refer to tuple unpacking. What happens is that the return value is a tuple, and so it is unpacked into the variables separated by commas, in the order of the tuple's elements.

    0 讨论(0)
  • 2020-11-27 16:24

    You can use the trailing comma in a tuple like this:

    >>> (2,)*2
    (2, 2)
    
    >>> (2)*2
    4
    
    0 讨论(0)
  • 2020-11-27 16:25

    _ is like any other variable name but usually it means "I don't care about this variable".

    The second question: it is "value unpacking". When a function returns a tuple, you can unpack its elements.

    >>> x=("v1", "v2")
    >>> a,b = x
    >>> print a,b
    v1 v2
    
    0 讨论(0)
提交回复
热议问题