为了账号安全,请及时绑定邮箱和手机立即绑定

python从菜鸟到小仙的成长之路-----Dict和Set类型篇

标签:
Python

Dict:
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59,
    'Paul': 75
}
print d

注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:

if 'Paul' in d:
    print d['Paul']

二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:


>>> print d.get('Bart')
59
>>> print d.get('Paul')
None

打印dict

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
print 'Adam:', d['Adam']
print 'Lisa:', d['Lisa']
print 'Bart:', d['Bart']

dict第一个特点是查找速度快.
dict第二个特点就是存储的key-value序对是没有顺序的,dict内部是无序的,不能用dict存储有序的集合.
dict的第三个特点是作为 key 的元素必须不可变.

d = {
    95: 'Adam',
    85: 'Lisa',
    59: 'Bart'
}

更新dict:

d = {
    95: 'Adam',
    85: 'Lisa',
    59: 'Bart'
}
d[72] = 'Paul'
print d

遍历dict:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
for k in d:
    print k + ':',d[k]

Set:
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list:
s = set(['A', 'B', 'C'])
set不能包含重复的元素
访问set
set不能识别小写的名字,会被认为是两个不同的元素
set的特点
1.set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
2.set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
3.set存储的元素也是没有顺序的。
ep:

months = set(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul','Aug','Sep','Oct','Nov','Dec'])

x1 = 'Feb'
x2 = 'Sun'

if x1 in months:
    print 'x1: ok'
else:
    print 'x1: error'

if x2 in months:
    print 'x2: ok'
else:
    print 'x2: error'

遍历set

s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
    print x[0] + ':', x[1]

更新set
一是把新的元素添加到set中,二是把已有元素从set中删除。
添加:add()方法,默认加在后面,如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了;
删除:remove()方法,如果删除的元素不存在set中,remove()会报错;
ep:

s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for x in L:
    if x in s:
        s.remove(x)
    else:
        s.add(x)
print s

To be continue.......

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消