Python 数据处理2.0.2
来源:互联网 发布:分布式数据库架构 编辑:程序博客网 时间:2024/06/10 01:21
今天有人问到了一个关于可变参数的问题,代码如下:
records=[ ('foo',1,2), ('bar','hwllo'), ('foo',3,4),]def do_foo(x,y): print('foo',x,y)def do_bar(s): print('bar',s)for tag,*args in records: if tag=='foo': do_foo(*args) elif tag=='bar': do_bar(*args)输出结果:foo 1 2bar hwllofoo 3 4
这段代码实际上是一本书里面,不过还是相当有趣的。要理解这段代码,首先先看下以下代码:
x,*args=[1,3,2,5,0]print(x)print(*args)
他家不妨猜猜x和*args的值是多少,了解可变参数的人肯定知道x=1,args=[3,2,5,0]
为什么会是这样的,具体*args的底层实现我确实不知道,但可以猜出,args可能靠循环加寻址实现的。有兴趣的人可以去看下。现在回过头来,看最上面的一段代码。输出结果为什么是那样的?
**首先**records是一个表,它存有三个元组的元素,当进行for循环时,先将第一个元组元素拿出来,也就是(’foo’,1,2),然后将这个元组赋给tag,*args,最后进行if判断输出,所以结果就是显示的那样。很简单的。
阅读全文
0 0
- Python 数据处理2.0.2
- python数据处理2
- Python 数据处理
- Python数据处理
- python数据处理
- python数据处理
- python 数据处理
- python数据处理
- python数据处理
- Python 数据处理
- 数学之路-python数据处理(2)
- Python数据处理方式
- Python 数据处理相关内容记录
- Python大数据处理工具
- python数据处理备忘
- python-金融数据处理demo
- python 数据处理网页收集
- Python学习-Numpy数据处理
- 10.19刷题记录
- 常见的java面试题
- c++中引用和指针的异同
- [soj1014]Specialized Four-Dig(10进制,12进制和16进制各位相加相等)
- 计算机网络之层次结构
- Python 数据处理2.0.2
- 排序算法学习经验(二)
- Kotlin——包
- verilog中两个模块使用同一信号线时,怎样使得信号线在特定情况下连接到相应的模块?
- python关于late binding和作用域链的理解
- 10/19
- numpy数组基本操作
- Windows dos命令cacls和Icalcs
- TF-IDF与余弦相似性的应用