1.元组拆包和解压序列赋值

  任何的序列 (或者是可迭代对象) 可以通过一个简单的赋值语句解压并赋值给多个 变量。唯一的前提就是变量的数量必须跟序列元素的数量是一样的。

  1.平行赋值:

>>> x = (1, 2)
>>> a, b = x # 元组拆包
>>> a
1
>>> b
2

  2.以用 * 运算符把一个可迭代对象拆开作为函数的参数:

>>> divmod(20, 8)  # 20求8的余,2 * 8 + 4 == 20
(2, 4)
>>> t = (20, 8)
>>> divmod(*t)
(2, 4)
>>> quotient, remainder = divmod(*t)
>>> quotient, remainder # 商和余数
(2, 4)

  3.函数中用 *args 来获取不确定数量的参数:

>>> a, b, *rest = range(5)
>>> a, b, rest
(0, 1, [2, 3, 4])
>>> a, b, *rest = range(3)
>>> a, b, rest
(0, 1, [2])
>>> a, b, *rest = range(2)
>>> a, b, rest
(0, 1, [])

  4.在平行赋值中,* 前缀只能用在一个变量名前面,但是这个变量可以出现在赋值表达式的任意位置:

>>> a, *body, c, d = range(5)
>>> a, body, c, d
(0, [1, 2], 3, 4)
>>> *head, b, c, d = range(5)
>>> head, b, c, d
([0, 1], 2, 3, 4)

.

最新文章

  1. hdu 5018 Revenge of Fibonacci
  2. android sdk
  3. 关于手机微网站ICP备案
  4. android 存储概念
  5. Android 在onActivityResult()中设置图片setImageResource(resId) 或者改变view属性,不成功的解决办法
  6. android xml解析 sax
  7. 提示找不到xml配置文件
  8. editplus 正则删换行
  9. 深度解析PHP数组函数array_combine
  10. Oracle数据库只读事务和无事务的区别
  11. A-Text Reverse(文本反向读)
  12. poj 2186 "Popular Cows"(强连通分量入门题)
  13. mysql、oracle分库分表方案之sharding-jdbc使用(非demo示例)
  14. 雷林鹏分享:查看 XML 文件
  15. webgote的例子(6)SQL注入(盲注)
  16. CSS3新属性注释及实例
  17. POJ1704 Georgia and Bob 博弈论 尼姆博弈 阶梯博弈
  18. 【Ubuntu】设置静态ip地址
  19. 1113. Integer Set Partition (25)
  20. java——简易版build模式

热门文章

  1. java类的基本结构
  2. ubuntu->错误
  3. NASA的10条代码编写原则
  4. 【算法笔记】B1051 复数乘法
  5. 【Template】Miller Rabin
  6. [转] docker 部署 odoo
  7. DOM操作 045
  8. JS框架设计之主流框架的引入机制DomeReady一种子模块
  9. MVC目录规范
  10. centos7 配置php-fpm