可变参数——可以有不确定个数的参数,非常灵活,收集参数然后packaging
def func(*args, **kw)
args接受一堆位置参数打包成tuple, kw接受一堆关键字参数打包成dict,具体示例(混用)如下:
def person(name, age, *args, hobby="blank", **kwa): for i in args: print(i) for k, v in kw.items(): print(k, v) person('Loli', 17) person('loli', 17, 'Light of', 'my life', hobby='seduction', otherInfo='fire of my loins') # 还是位置参数放在关键字参数前
dict——无序序列:无分片索引;key必须可哈希
d1 = dict({'one':1, 'two':2, 'three':3}) d2 = dict(one=1, two=2, three=3) d3 = dict( [('one',1), ('two',2), ('three',3)]) for k in d: print(k, d[k]) # 上述代码可以改写成如下 for k in d1.keys(): print(k, d[k]) # 只访问字典的值 for v in d2.values(): print(v) # 注意以下特殊用法 for k,v in d3.items(): print(k,'--',v) dd = {k:v for k,v in d1.items()} print(d2.get("on333")) # 没有则返回None l = ['hi', 'i', 'am'] d = dict.fromkeys(l, "ha") # 使用指定的序列作为键,使用一个值作为字典的所有的键的值 # d = {'hi': 'ha', 'i': 'ha', 'am': 'ha'}