python学习 字典

dict={}#直接新建字典

可以根据映射关系将元组变为字典

dict3=dict(((‘赵’,1),(‘钱’,2),(‘孙’,3),(‘李’,4)))
dict3
{‘赵’: 1, ‘钱’: 2, ‘孙’: 3, ‘李’: 4}

dict4=dict(你好=‘骚年’,学习=‘python’)
dict4
{‘你好’: ‘骚年’, ‘学习’: ‘python’}

修改字典中对应的value

dict4[‘你好’]=‘这个世界’
dict4
{‘你好’: ‘这个世界’, ‘学习’: ‘python’}

向字典中添加

dict4[‘天才’]=‘专注’
dict4
{‘你好’: ‘这个世界’, ‘学习’: ‘python’, ‘天才’: ‘专注’}

用fromkeys()创建字典

dict2={}
dict2.fromkeys((1,2,3))
{1: None, 2: None, 3: None}

dict2.fromkeys((1,2,3),‘细嗅蔷薇’)
{1: ‘细嗅蔷薇’, 2: ‘细嗅蔷薇’, 3: ‘细嗅蔷薇’}

dict2.fromkeys((1,2,3),(‘心有猛虎’,‘细嗅蔷薇’,‘刚柔并济’))
{1: (‘心有猛虎’, ‘细嗅蔷薇’, ‘刚柔并济’),
2: (‘心有猛虎’, ‘细嗅蔷薇’, ‘刚柔并济’),
3: (‘心有猛虎’, ‘细嗅蔷薇’, ‘刚柔并济’)}

#fromkeys不可修改字典,如果用fromkeys修改,只会创建新的字

dict1=dict1.fromkeys(range(20),‘玩笑’)
dict1
{0: ‘玩笑’, 1: ‘玩笑’, 2: ‘玩笑’, 3: ‘玩笑’, 4: ‘玩笑’, 5: ‘玩笑’, 6: ‘玩笑’, 7: ‘玩笑’, 8: ‘玩笑’, 9: ‘玩笑’, 10: ‘玩笑’, 11: ‘玩笑’, 12: ‘玩笑’, 13: ‘玩笑’, 14: ‘玩笑’, 15: ‘玩笑’, 16: ‘玩笑’, 17: ‘玩笑’, 18: ‘玩笑’, 19: ‘玩笑’}

打印keys

for eachkey in dict1.keys():
print(eachkey)

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

打印values

for eachvalue in dict1.values():
print(eachvalue)

玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑
玩笑

打印Item

for eachitem in dict1.items():
print(eachitem)

(0, ‘玩笑’)
(1, ‘玩笑’)
(2, ‘玩笑’)
(3, ‘玩笑’)
(4, ‘玩笑’)
(5, ‘玩笑’)
(6, ‘玩笑’)
(7, ‘玩笑’)
(8, ‘玩笑’)
(9, ‘玩笑’)
(10, ‘玩笑’)
(11, ‘玩笑’)
(12, ‘玩笑’)
(13, ‘玩笑’)
(14, ‘玩笑’)
(15, ‘玩笑’)
(16, ‘玩笑’)
(17, ‘玩笑’)
(18, ‘玩笑’)
(19, ‘玩笑’)

打印其中的一项

print(dict1[19])
玩笑

若字典中不存在该项则会报错

print(dict1[20])
Traceback (most recent call last):
File “<pyshell#259>”, line 1, in
print(dict1[20])
KeyError: 20+

查询字典中是否存在一个元素

19 in dict1
True

20 in dict1
False

字典删除某项与列表元组一样

del dict1[19]
dict1
{0: ‘玩笑’, 1: ‘玩笑’, 2: ‘玩笑’, 3: ‘玩笑’, 4: ‘玩笑’, 5: ‘玩笑’, 6: ‘玩笑’, 7: ‘玩笑’, 8: ‘玩笑’, 9: ‘玩笑’, 10: ‘玩笑’, 11: ‘玩笑’, 12: ‘玩笑’, 13: ‘玩笑’, 14: ‘玩笑’, 15: ‘玩笑’, 16: ‘玩笑’, 17: ‘玩笑’, 18: ‘玩笑’}

清除字典clear指令

dict1.clear()
dict1
{}
【注】区别于

dict1={}
dict1
{}

a={‘学号’:‘001’}
b=a
b
{‘学号’: ‘001’}

a={}
a
{}

b
{‘学号’: ‘001’}

a=b
a
{‘学号’: ‘001’}

b
{‘学号’: ‘001’}

a.clear()
a
{}

b
{}

浅拷贝copy

a={1:‘大哥’,2:‘二哥’,3:‘三弟’}
b=a.copy()
c=a
a
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’}

b
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’}

c
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’}

id(a)
1797360

id(b)
1795104

id©
1797360

#赋值与浅拷贝看起来一样,但实际上赋值时数据地址还是原来的地址,而浅拷贝数据地址会改变
c[4]=‘四叔’
a
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’, 4: ‘四叔’}

b
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’}

c
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’, 4: ‘四叔’}

#此时可以就可以看出,浅拷贝与赋值之间的区别

POP指令
1.可用来调取并删除字典中的某一项

a.pop(4)
‘四叔’

a
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三弟’}

2.随机调取并删除字典中的一项(因为字典是没有先后顺序的)

a.popitem()
(3, ‘三弟’)

setdefault向字典中添加一项

a
{1: ‘大哥’, 2: ‘二哥’}

a.setdefault(3,‘三哥’)
‘三哥’

a
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三哥’}

update更新字典

b={4:‘四婶’}
a.update(b)
a
{1: ‘大哥’, 2: ‘二哥’, 3: ‘三哥’, 4: ‘四婶’}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值