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