python的数据分解和动态传值,*的几个简单用法

Python中内置了很多有用的数据结构,列表list , 集合set,字典dict.那今天我们就根据这几个数据结构来看看python中 * 的用法。*的作用,如果在函数参数中*表示的是不限的位置参数。*args,**kwargs则说明了python中函数的动态赋值用法。

python中的数据分解

python2.x的写法

1.先看一个简单的例子

a,b,c,d='wang'

print a,b,c,d

显示的结果为:

w a n g

这说明了字符串“wang”对应的四个字符,自动被分解为 w ,a ,n ,g 给对了对应的变量

2,再看python中元祖的自动的分解

a, b= ("name", 45)

print a,b

显示的结果为:

name 45

3,复合型元祖的做法

a, b, (c, d) = ("a", 1, ("name", 45))

print a, b, c, d

显示的结果为:

a 1 name 45

4,python中dict 的分解

a, b, c = {"name": "wangjing", "sex": "mal", "addrList": [u'湖北', u'湖南']}

print a, b, c

显示的结果为 :

addrList name sex

说明python对已知长度的数据,可以做很好的自动分解,针对dict取到的是key

python3.x的写法

对不知道长度的数据做了动态分解
a,*b ,c=’wangjing’
print a ,b ,c
显示的结果为:

w angjin g

也就是说字符串wangjing,把首位赋值给了a,c ,把其它不知长度的值都给了b

python中的动态传参

python中当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值

1,*args的用法

def fun_args(pram, *args):  
    print pram  
    for value in args:  
        print "another arg:", value  

fun_args(1, 'wang', 3,'jng') # *args可以当作可容纳多个变量组成的list

显示的结果为:

1
another arg: wang
another arg: 3
another arg: jing

2,**kwargs的用法

def fun_var_kwargs(farg, **kwargs):  
    print "arg:", farg  
    for key in kwargs:  
        print "another keyword arg: %s: %s" % (key, kwargs[key])  


fun_var_kwargs(farg=1, myarg2="two", myarg3=3)

myarg2和myarg3被视为key, **kwargs可以当作容纳多个key和value的dictionary

显示结果为:

arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3

3,与1同理的做法,对元祖自动分解,然后赋值

re = ('wangjing',True)

def fuc(a, b):
    print a, b

fuc(*re)

显示结果为:

wangjing True

尾记:

针对python中数据结构更加详细的用法,可以直接进官网查看https://docs.python.org/3/,这个是python3.x的用法

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值