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. lightoj1010【规律】

    思路: 根据案例的规律其实已经猜的差不多了,answer=n*m/2; 有一条边是1的情况,也很好判断,answer=n*m; 就是有一条边是2的时候比较隐秘:是连续2*2一块可以填,然后2*2不填, ...

  2. 洛谷P1556 幸福的路

    P1556 幸福的路 题目描述 每天,John都要为了农场里N(1≤N≤10)头牛的健康和幸福四处奔波. 每头牛的位置可以描述为一个二维坐标,John从坐标原点(0,0)出发.为了使路径更有趣,Joh ...

  3. 洛谷P2414 [NOI2011]阿狸的打字机(AC自动机)

    传送门 考虑一下,如果串B在串A中出现过,那么A的fail指针必定直接或间接指向B 那么我们可以把fail树建起来,那么就变成B代表的节点的子树里有多少节点属于A 然后这就是一个序列统计问题,直接用d ...

  4. 4、CreateJS介绍-PreLoadJS

    需要在html5文件中引入的CreateJS库文件是preloadjs-0.4.1.min.js HTML5文件如下: <!DOCTYPE html> <html lang=&quo ...

  5. STP-13-MST和其它STP版本的互操作性(没写完)

    为了理解MST和其他STP版本的互操作性,首先要来看看MST与没有每VLAN概念的纯IEEE802.1D STP或802.1w RSTP非MST交换机(本书称其为非MST交换机)之间互操作的方式.这些 ...

  6. Unity 打包PC和安卓的路径注意事项

    if UNITY_STANDALONE_WIN || UNITY_EDITOR return Application.persistentDataPath + "/LocalData&quo ...

  7. (转)Linux下select, poll和epoll IO模型的详解

    Linux下select, poll和epoll IO模型的详解 原文:http://blog.csdn.net/tianmohust/article/details/6677985 一).Epoll ...

  8. oracle备份imp命令大全

    oracle中imp命令详细解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...

  9. windows live writer 安装失败 0x80190194 解决方法

    windows live writer已经停止更新,部分安装包无法下载. 改安装windows软件包即可,其中包含windows live writer的安装. 参考: http://jingyan. ...

  10. (译)Minimal Shader(最小的着色器)

    (原文:https://en.wikibooks.org/wiki/Cg_Programming/Unity/Minimal_Shader) This tutorial covers the basi ...