非空即真,非0即真# 实现同样的功能,代码越少越牛逼
a = []b = '' # not的意思是取反print(not b)# 运行结果为“True”c = ()d = 0e = Noneif a: print('是真的')else : print('是假的')# 运行结果为“是假的”
一、字典 map
字典是无序的
k - v(key - value)
# import this# age name sex addr phone qq email# k - v(key - value)# mapname1 = { 'name':'name1', 'age':18, 'sex':'unknow', 'addr':'天通苑', 'qq':12345678, 'email':'name1@qq.com', 'age':23 }print(name1)#运行结果:{'email': 'name1@qq.com', 'addr': '天通苑', 'sex': 'unknow', 'qq': 12345678, 'name': 'name1', 'age': 23}
1、增加
(1)第一种增加方式:如果没有就直接添加,如果有,就进行修改
name1['女朋友']='漂亮'print(name1)#运行结果:# {'addr': '天通苑', '女朋友': '漂亮', 'qq': 12345678, 'name': 'name1', 'sex': 'unknow', 'age': 23, 'email': 'name1@qq.com'}
(2)第二种:name1.setdefault()
setdefault()这种方式,如果key已经存在,那么就不会修改。
name1.setdefault('house','10套')print(name1)# 运行结果:{'sex': 'unknow', 'house': '10套', 'email': 'name1@qq.com', 'age': 23, 'addr': '天通苑', 'name': 'name1', '女朋友': '漂亮', 'qq': 12345678}
2、修改
name1['女朋友']='非常漂亮'print(name1)# 运行结果:{'name': 'name1', 'addr': '天通苑', 'email': 'name1@qq.com', 'sex': 'unknow', 'age': 23, 'qq': 12345678, '女朋友': '非常漂亮', 'house': '10套'}
3、删除
(1)name1.pop('女朋友') 指定key删除,删除的时候key不存在是会报错的
name1.pop('女朋友')print(name1)#运行结果:{'age': 23, 'qq': 12345678, 'sex': 'unknow', 'email': 'name1@qq.com', 'addr': '天通苑', 'name': 'name1', 'house': '10套'}
(2)del name1['age'] 用del来删,删除的时候key不存在是会报错的
del name1['女朋友11']print(name1)#会报错如下#KeyError: '女朋友11'
(3)清空字典
name1.clear() print(name1) # 运行结果:{}
(4)随机删除一个key
name1.popitem()print(name1)# 运行结果:{'email': 'name1@qq.com', 'addr': '天通苑', 'name': 'name1', 'qq': 12345678, 'sex': 'unknow'}
4、取值
(1)若key存在,可获取到值,若key不存在,则会报错
print(name1['addr'])# 运行结果:天通苑print(name1['addr111'])# 运行结果:报错如下# KeyError: 'addr111'
(2)若key存在,可获取到值,若key不存在,则返回设置的返回值。如下所示
print(name1.get('email','无法获取到email'))# 运行结果:name1@qq.comprint(name1.get('emailqqqq','无法获取到email'))# 运行结果:无法获取到email
二、把一个字典增加到另外一个字典里
name1.upadate(name2) 将后面的字典加入到前面的字典中,即将name2加入到name1中
name2 = { 'computer':'三台'}name1.update(name2)# 把一个字典加入到另外一个字典里面print(name1)#{'age': 23, 'name': 'name1', 'email': 'name1@qq.com', 'addr': '天通苑', 'sex': 'unknow', 'qq': 12345678, 'computer': '三台'}print(name1.values())# dict_values([23, 'name1', 'name1@qq.com', '天通苑', 'unknow', 12345678, '三台'])print(name1.keys())# dict_keys(['age', 'name', 'email', 'addr', 'sex', 'qq', 'computer'])for k,v in name1.items(): print(k,v) # age # 23 # name # name1 # email # name1 @ qq.com # addr # 天通苑 # sex # unknow # qq # 12345678 # computer # 三台
练习:
info = [ { 'xiaohei': { 'money':10000, 'cars':['Ben-z','audi','BMW'], 'info': { 'phone':186212312, 'age':36,} } }, { 'xiaohong': { 'house': { '朝阳':2, '海淀':3, '昌平':5 }, 'lan':['ch','en','jp'], } }]# info[0]['xiaohei']['cars'].append('新车')# print(info)# info[0]['xiaohei']['info']['addr'] = 'sdfsdf'# print(info)info[1]['xiaohong']['house']['海淀']+=2print(info)# [{'xiaohei': {'cars': ['Ben-z', 'audi', 'BMW'], 'info': {'age': 36, 'phone': 186212312}, 'money': 10000}}, {'xiaohong': {'house': {'朝阳': 2, '海淀': 5, '昌平': 5}, 'lan': ['ch', 'en', 'jp']}}]
三、高效循环字典的方式
d = { 'a':1,'b':2}# print(d.items())# for k,v in d.items():# print(k,v) #可以for k in d: print(k,d.get(k))# 输出结果:# a 1# b 2