python的基础使用之字典(涅槃之路8)

一、字典

字典的定义,以及修改、添加、删除、更新、获取值、单独取key和取values、转字典为列表

info = {
    'a001':"zhangmeng",
    'a002': ' wangyanyan ',
    'a003': 'wenshuo',
    'a004': 'guo'
}
print(info['a001'])
info['a004']="过"  # 修改,若没有则添加
print(info)
del info['a001']  # 删
print(info)
print(info.get('a004'))  # 获取a004对应的元素
print('a004'in info) # 判断是否存在
b= {
    'a001':'张猛',
    'a005':'董博'
}
info.update(b)   # 使用b更新info,不存在则添加
print(info)
print(b.items())   # b.items()转字典为列表
for i in b.items():    # b.items()转字典为列表
    print(i)
c = info.fromkeys([1, 2, 3], 'test')   # 初始化使用并不改变info的内容,可以用dict代替info
print(c)
d = dict.fromkeys([1, 2, 3], ['abc', {7: '七', 8: '八'}, 'qq'])
print(d)
d[1][1][7]='9'   # 深,一改动所有
print(d.values())   # 输出所有元素
print(d.keys())   # 输出key

运行结果

zhangmeng
{'a001': 'zhangmeng', 'a002': ' wangyanyan ', 'a003': 'wenshuo', 'a004': '过'}
{'a002': ' wangyanyan ', 'a003': 'wenshuo', 'a004': '过'}
过
True
{'a002': ' wangyanyan ', 'a003': 'wenshuo', 'a004': '过', 'a001': '张猛', 'a005': '董博'}
dict_items([('a001', '张猛'), ('a005', '董博')])
('a001', '张猛')
('a005', '董博')
{1: 'test', 2: 'test', 3: 'test'}
{1: ['abc', {7: '七', 8: '八'}, 'qq'], 2: ['abc', {7: '七', 8: '八'}, 'qq'], 3: ['abc', {7: '七', 8: '八'}, 'qq']}
dict_values([['abc', {7: '9', 8: '八'}, 'qq'], ['abc', {7: '9', 8: '八'}, 'qq'], ['abc', {7: '9', 8: '八'}, 'qq']])
dict_keys([1, 2, 3])

设置默认值

字典自带的 setdefault 函数

1

2

3

4

5

6

7

>>>dic = {'a' 1}

 

#此时访问 dic['b'] 会报错,因为dic不存在键 ‘b’

#设置默认值

>>> dic.setdefault('b'2)

>>> dic['b']

>>> 2

 2 collections 模块的 defaultdict 函数

1

2

3

4

>>> from collections import defaultdict

>>> dic = defaultdict(int)

>>> dic['a']

>>> 0<br># dic = defaultdict(int) 该式中的int 可以替换为 str flaot等。<br># 为 int 时的默认值为 0<br># 为 str 时的默认值为 ''<br><br>#若想设置默认值为一给定的值 比如 'oppo' 则如下<br>>>> dic = defaultdict(lambda : 'oppo')<br>>>> dic['a']<br>>>> 'oppo'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值