Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。dict{ },把数据放入dict的方法,除了初始化时指定外,还可以通过key放入
>>> d['Adam'] = 67
>>> d['Adam']
67
当key值不存在时dict还会报错。dict内部存放的顺序和key放入的顺序是没有关系的,而且dict的key必须是不可变对象(这个通过key值计算位置的算法是哈希算法)
key是‘ma’,'dir','ws'
d={'ma':99,'dir':88,'ws':5}
d['ff']=8
print(d)
结果为
{'ws': 5, 'ma': 99, 'ff': 8, 'dir': 88}
7.set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key,set可以看成数学意义上的无序和无重复元素的集合。对于不变对象(如set)来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
8.函数中有未知部分
def person(name,age,**kw):
if 'city' in kw:
pass
if 'job' in kw:
pass
print('name:', name, 'age:', age, 'other:', kw)
person('Jack', 24, city='Beijing', addr='Chaoyang')
结果为
('name:', 'Jack', 'age:', 24, 'other:', {'city': 'Beijing', 'addr': 'Chaoyang'})
9.疑问:
(1)意义是什么
def person(name, age, *, city, job):
print(name, age, city, job)
(2)不理解
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*
了:
def person(name, age, *args, city, job):
print(name, age, args, city, job)
person('Jack',8, city='Beijing', job='Engineer')
详见*arg和**kwargs区别
https://blog.csdn.net/doubleicefire/article/details/80058168 这里提到了*args是保存用不上的数据。
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000 这是廖雪峰老师的*args的用法
(3)不懂
def person(name,age, **kw):
if 'city' in kw:
# pass
print('pass')
if 'job' in kw:
pass
print('name:', name, 'age:', age, 'other:', kw)
person('hu',8,jobb='fr')
name: hu age: 8 other: {'jobb': 'fr'}
pass是占位符