pythonzip()函数的使用

最近在学习pyqt4的使用,在学习文档中看到一段代码:

names = ['Cls', 'Bck', '', 'Close',
                 '7', '8', '9', '/',
                '4', '5', '6', '*',
                 '1', '2', '3', '-',
                '0', '.', '=', '+']
positions = [(i,j) for i in range(5) for j in range(4)]
for position,name in zip(positions,names):
     if name == '':
          continue
     button = QtGui.QPushButton(name)
     grid.addWidget(button,*position)
	

 

在完善其余代码后,最终实现效果为:
在这段代码中,需要学习的代码有三句:
positions = [(i,j) for i in range(5) for j in range(4)]
构建一个二维positions列表
for position,name in zip(positions,names):
name:依次遍历names赋值给name
position:依次遍历列表positions赋值(元组)给position
grid.addWidget(button,*position)

position是一个表示位置的元组
当要使函数 接收元组或字典形式的参数 的时候,有一种特殊的方法,它 分别使用*和**前缀 。这种方法在函数需要 获取可变数量的参数 的时候特别有用。
所以在此处使用*position
[注意]
[1] 由于在args变量前有 *前缀 ,所有多余的函数参数都会 作为一个元组存储在args中 。如果使用的是 **前缀 ,多余的参数则会被认为是 一个字典的健/值对
[2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用
func(1, 2, 3) args就表示(1, 2, 3)这个元组
[3] 对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用
func(a='I', b='am', c='wcdj') args就表示{'a':'I', 'b':'am', 'c':'wcdj'}这个字典
[4] 注意普通参数与*和**参数公用的情况,一般将*和**参数放在参数列表最后。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值