# 字典是一种 key-value 数据类型
# 字典是无序的(没有下标),key 必须是唯一的,所以天生去重

info = {
    'n01': "jason",
    'n02': "leo",
    'n03': "holly",
}

info2 = {
    'n01': 'payne',
    'n10': 'male',
    'n20': 'olive'
}

print(info)
print(info['n02'])
print(info.get('n03')) # 不确定key存不存在的情况下用这种方法
print('n01' in info) # 判断字典中是否存在某个key ( same py2.7 info.has_key('n04'))


# change and add
info['n03'] = 'make'
info['n04'] = 'joshua'

# del
del info['n01']
info.pop('n02')
info.popitem() # 随机删掉一组key-value

# update
info.update(info2) # 将info2的数据更新到info中
# (如果有key样的则把info的值改为info2的值,如果info2里的key在info里不存,则新增到info中去)

# item
print(info.items()) # 将字典转成列表

info.setdefault('n08', 'apple')
# 在av_catalog字典里取key=’TW‘的值,能取到则返回,不能取到则新增
print(info)

# 通过一个列表生成默认dict
d = dict.fromkeys([1, 2, 3], [1, {'abc': 'apple'}, 'test'])
d[2][1]['abc'] = 'phone' # 更改d字典中key为2的下标为1的字典中key为abc的值为:phone
# 这样生成的dict 在后期更改个key值时,当时所生成的key对应的值都会被更改
print(d)

# dict 循环 (以下方式第一种效率更高,dict很大的情况下第二种会慢)
for i in info:
    print(i, info[i])

for k, v in info.items():
    print(k, v) 

  

posted on 2018-04-28 11:02  PAYNE1Z  阅读(105)  评论(0)    收藏  举报