1、字典
字典和列表都是可变的数据类型,不同点在于,列表的索引默认是整数,并且不用标识出来,而字典的索引(也叫做键)需要标识出来,且字典要使用大括号括起来,格式如下:
变量名 = { “键”:”值”, “键”:”值”, “键”:”值”}
#例如:
info = {"website_name":"www.nwumba.cn", "ip":"110.42.232.244","age":"1 year"}
#获取某个键的值,需要像列表一样指定索引
print(info[“website_name”]
print(info[“ip”])
print(info[“age”])
# 改变值和列表也是一样的
info[“website_name’] = “nwumba.cn”
print(info)
# 字典的key只能为不可变数据类型,值可以为任意数据类型,下面会报错,key不能为list
info[[“test”]] = “test”
2、for循环获取dict的常用函数
keys(): 返回dict的所有key
values(): 返回dict的所有value
items(): 返回dict的所有key和value,每对key和value以元组的形式返回
上面所有的返回值都可以通过list()来转换成列表
3、检查key或者value是否在dict中存在
in: 查看key或者value是存在dict的key或者value中
not in : 查看key或者value不存在于dict的key或者value中
4、get()
get(key,default_return_value): 如果dict中存在key,则直接返回,否则返回default_return_value指定的值,不使用get的话,直接使用key来获取值会报错。
5、setDefault(key,deafult_value)
setDefault先判断key是否存在于dict中,如果存在,则略过,否则设定map[key]=default_value
info = {"website_name":"www.nwumba.cn", "ip":"110.42.232.244","age":"1 year"}
# 判断info中是否存在domain_name这个key,如果不存在则设定info['domain_name']='nwumba.cn'
if 'domain_name' not in spam:
spam['domain_name'] = 'nwumba.cn'
#上面的功能可以简化为一句代码
info = {"website_name":"www.nwumba.cn", "ip":"110.42.232.244","age":"1 year"}
info.setDefault('domain_name','nwumba.cn')
6、综合实例
统计各个大型网站的几个用户拥有的账户总数
#每个用户在各个大型网站上拥有的账户数目
allAccounts = {'xiaomage': {'qq.com': 5, 'nwumba.cn': 12},
'xiaolige': {'baidu.com': 3, 'nwumba.cn': 2},
'xiaoming': {'google.com': 3, 'qq.com': 1}}
# accounts: dict,记录每个用户在各个网站的账户数目,等价于allAccounts
# item: 域名,例如:nwumab.cn
def totalAccount(accounts, item):
numAccounts = 0
➊ for k, v in accounts.items():
➋ numAccounts += v.get(item, 0)
return numAccounts
print('在各个网站上的账户总数:')
print(' - qq.com ' + str(totalAccount(allAccounts, 'qq.com')))
print(' - nwumba.cn ' + str(totalAccount(allAccounts, 'nwumba.cn')))
print(' - baidu.com ' + str(totalAccount(allAccounts, 'baidu.com')))
print(' - google.com ' + str(totalAccount(allAccounts, 'google.com')))
原创文章,转载请注明出处:http://www.nwumba.cn/article/13/