1. *在函数中的作用

聚合

在函数定义时聚合

def eat(args):
print('我请你吃:',args)
eat('蒸羊羔儿') # 输出结果
# 我请你吃: 蒸羊羔儿

打散

在函数执行时打散

*arg打散的是 str tuple list

'alex' [1, 2, 3, 4] ('武sir', '太白', '女神',) 由这种打散变成('a', 'l', 'e', 'x', 1, 2, 3, 4, '武sir', '太白', '女神')

**wkargs打散的是 dict 两个字典变一个

func(中的两个表示只能打散字典,且打散后的只能传给kwargs)

用法:

dic1 = {'name':'太白','sex':'男'}
dic2 = {'age': 73,'hobby': '吹'}
l1 = [1,2,3]
def func(**kwargs):
print(args)
print(kwargs)
func(**dic1,**dic2)

打散目的

如果是传给*args就是将多个列表,或者字符,或者元组聚合成一个大的元组

如果打散后的是传给**kwargs就是将多个字典聚合一个大字典

s1 = 'alex'
l1 = [1, 2, 3, 4]
tu1 = ('武sir', '太白', '女神',) def func(*args):
print(args)
func(*s1,*l1,*tu1) # 输出结果
('a', 'l', 'e', 'x', 1, 2, 3, 4, '武sir', '太白', '女神') # 对比:
以前是:'alex',[1, 2, 3, 4],('武sir', '太白', '女神',)
打散后是: ('a', 'l', 'e', 'x', 1, 2, 3, 4, '武sir', '太白', '女神')

练习题

l1 = [1, 2, 3]
l2 = ['太白', 'wusir', '景女神']
def func(*args,**kwargs):
print(args)
print(kwargs)
# func(l1,l2)
# func(*l1,*l2) # 当函数的执行时:*iterable 代表打散。
func(*[1, 2, 3],*(11,22),*'fdsakl')
dic2 = {'age': 73,'hobby': '吹'}
l1 = [1,2,3]
def func(*args,**kwargs):
print(args)
print(kwargs)
func(*l1,**dic2)

在函数以外还可以这样打散

分别赋值
a,b = (1,2)
print(a, b)
# 输出结果
1 2
a,*b = (1, 2, 3, 4,)
print(a, b)
# 输出结果
1 [2, 3, 4]
*rest,a,b = range(5)
print(rest, a, b)
# 输出结果
[0, 1, 2] 3 4
print([1, 2, *[3, 4, 5]])
# 输出结果
[1, 2, 3, 4, 5]

一句话总结

*arg打散的是 str tuple list

'alex' [1, 2, 3, 4] ('武sir', '太白', '女神',) 由这种打散变成('a', 'l', 'e', 'x', 1, 2, 3, 4, '武sir', '太白', '女神')

**wkargs打散的是 dict 两个字典变一个

用法

dic2 = {'age': 73,'hobby': '吹'}
l1 = [1,2,3]
def func(*args,**kwargs):
print(args)
print(kwargs)
func(*l1,**dic2)

python之*的魔性用法的更多相关文章

  1. python 中del 的用法

    python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题. python的del不同于C的free和C++的delete. 由于pyth ...

  2. Python多进程并发(multiprocessing)用法实例详解

    http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...

  3. Python dictionary 字典 常用法

    Python dictionary 字典 常用法 d = {} d.has_key(key_in)       # if has the key of key_in d.keys()          ...

  4. 【python】 del 的用法

    转自 https://blog.csdn.net/love1code/article/details/47276683 python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以 ...

  5. Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)

    Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...

  6. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  7. [转]使用python来操作redis用法详解

    转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...

  8. python之模块py_compile用法(将py文件转换为pyc文件)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...

  9. python format()函数的用法

    Python format() 函数的用法 复制自博主 chunlaipiupiupiu 的博客,如有侵权,请联系删除 python中format函数用于字符串的格式化 通过关键字 1 print(' ...

随机推荐

  1. php 连接 memcached 并调用

    话不多说,上代码,自己看注释 <?php header("Content-type: text/html; charset=utf-8"); $mem = new Memca ...

  2. Unity手游之路自动寻路Navmesh之高级主题

    http://blog.csdn.net/janeky/article/details/17492531 之前我们一起学习了如何使用Navmesh组件来实现最基本的角色自动寻路.今天我们再继续深入探索 ...

  3. Spring+SpringMVC+JDBC实现登录

    Spring+SpringMVC+JDBC实现登录 有一位程序员去相亲的时候,非常礼貌得说自己是一名程序员,并解释自己是做底层架构的,于是女方听到"底层"两个字,就一脸嫌弃:什么时 ...

  4. PJzhang:子域名爆破工具wydomain(猪猪侠)

    猫宁!!! 参考链接:https://www.secpulse.com/archives/53182.html https://www.jianshu.com/p/65c85f4b7698 http: ...

  5. 基于SSM搭建网站实现增删改查

    网站源码地址:https://github.com/MyCreazy/BasicOperateWebSite.git 使用maven搭建网站的时候,记得选用war包格式,有时候maven包没有引用进来 ...

  6. 跟踪记录ABAP对外部系统的RFC通信

    对SAP系统而言,RFC最常见的系统间通信方式,SAP与SAP系统及SAP与非SAP系统之间的连接都可以使用它.它的使用便利,功能强大,在各种接口技术中,往往是最受(ABAP开发者)青睐的选择. 查询 ...

  7. WPF编译时提示"xxx不包含适合于入口点的静态 Main方法xxx"

    WPF编译时提示"xxx不包含适合于入口点的静态 Main方法xxx"生成的时候一直报"xxx不包含适合于入口点的静态 Main 方法xxx" 看到这个问题首先 ...

  8. linux查看系统版本(适用于centos、ubutun,其他类型没有进行测试)

    方法一:cat /etc/issue 或more /etc/issue root@salt-master:~# cat /etc/issueUbuntu 16.04.2 LTS \n \l 方法二:l ...

  9. Java中

  10. Spark Mllib里如何提取每个字段并转换为***类型(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第17章 决策树多元分类UCI Covertype数据集