zoukankan      html  css  js  c++  java
  • Python-9-赋值进阶

    1.序列解包
    同时给多个变量赋值 
    >>> x, y, z = 1, 2, 3
    >>> print(x, y, z)
    1 2 3
    用这种方式还可以交换两个变量的值
    >>> x, y = y, x
    >>> print(x, y, z)
    2 1 3
    实际上这里的操作称为序列解包,将一个序列解包,并将得到的值存储到一系列变量中
    >>> values = 1, 2, 3
    >>> values
    (1, 2, 3)
    >>> x, y, z = values
    >>> x
    1
    在使用返回序列的函数时有用
    >>> scoundrel = {'name': 'Robin', 'girlfriend': 'Marion'}
    >>> key, value = scoundrel.popitem()
    >>> key
    'girlfriend'
    >>> value
    'Marion
    注意左右个数必须相同,否则会报错
    >>> x, y, z = 1, 2
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ValueError: need more than 2 values to unpack
    可使用星号运算符(*)来收集多余的值,这样无需确保值和变量的个数相同:
    >>> a, b, *rest = [1, 2, 3, 4]
    >>> rest
    [3, 4]
    还可将带星号的变量放在其他位置。
    >>> name = "Albus Percival Wulfric Brian Dumbledore"
    >>> first, *middle, last = name.split()
    >>> middle
    ['Percival', 'Wulfric', 'Brian']
     
    2.链式赋值
    x = y = somefunction()
    与以下代码等价
    y = somefunction()
    x = y
    与以下代码不等价
    x = somefunction()
    y = somefunction()
     
    3.增强赋值
    x = x + 1 等价于 x += 1 适用于所有标准运算符
  • 相关阅读:
    Mysql中使用FIND_IN_SET解决IN条件为字符串时只有第一个数据可用的问题
    Mysql中游标的使用
    xcode5下cocos2dx横竖屏设置
    VUE 小点 1
    绝对定位居中
    清楚float的方法4种
    socket模拟简单的服务器
    Django + Uwsgi + Nginx 的生产环境部署
    常见排序算法
    mro之C3算法
  • 原文地址:https://www.cnblogs.com/swefii/p/10808348.html
Copyright © 2011-2022 走看看