python学习日记五 Dict函数与Set函数

dict()

dict函数的一般格式
dict{key :value }
dict可以根据key来查找value
此时注意{ }花括号表示这是一个dict,要跟list的[ ],与tuple的( )区分开来。

dict()的访问

用d[key]的形式来查找对应的value,这跟list要相区分开来,
list必须使用索引返回对应的元素,
dict使用key;

d = {
    'A':'BEIJIN',
    'B':'SHANGHAI'
}
print (d['A'])
#
BEIJIN

注意: 通过 key访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError.
为了让代码运行正确,我们需要避免这种情况。
一我们可以先判断key是否存在,用if语句判断。
二是使用dict本身提供的一个 get 方法,在x不存在的时候,返回None:

d = {
    'A':'BEIJIN',
    'B':'SHANGHAI'
}
print (d.get('A')#输出
BEIJIN
dict的特点

一查找速度快。
二存储的key-value序对是没有顺序的。
三作为key的元素必须不可变,python的基本数据类型如字符串,整数,浮点数都是不可变的。
上述的三个特点都可以跟list的特点区分开来。

dict的更新

dict是可变的,我们可以随时往dict中添加新的序对。

d['C']='GUANGZHOU'
print d 
#输出
{'A': 'BEIJIN', 'B': 'SHANGHAI', 'C': 'GUANGZHOU'}

我们也可以对已有的key,用赋值的方法替换value
同理可得。

用for循环遍历dict

可以通过key可以获取对应的value,所以在循环体内,可以获得value的值。
用for循环遍历如下的dict,
打印出name:hometown

d={
   'A':'BEIJIN',
   'B':'SHANGHAI'
}
for x in d:
    print  (x+':',d[x])
#输出
A: BEIJIN
B: SHANGHAI

set()

创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

s=set(['A','B','C','C'])
print s
#输出
{'A', 'B', 'C'}
{'A', 'C', 'B'}
...有多种情况,说明set的元素是无序的,并且set会自动去掉重复的元素,原来list有四个元素,但输出的只有三个。

set的访问

set存储的是无序集合,所以我们没有办法用索引来访问,访问set的某些元素实际就是判读元素是否在set中。
我们可以用in操作符来判断。

s={['A','B','C']}
'B' in s
#输出
Ture 
set的特点

一set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
二set存储的元素和dict的key类似,必须是不变对象,所以任何可变对象不能放入set中。
三set存储的元素也是没有顺序的。

用for循环遍历set

由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。可以参考上述用for循环遍历dict。

set的更新

set的更新可分为两种
一把新元素添加进set中。
添加元素可以用add()的方法:
二把已有的元素从set中删除。
删除set中的元素是可以用remove():
当删除的元素不存在set中是,remove()会报错,所以使用remove()要先判断。

s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:#name都在L中
    if name in s:
        s.remove(name)
    else:
        s.add(name)
print (s)
#输出
{'Bart'}

那么今天的分享就到这里,我们可以把dict(),set()和list(),tuple()一起记。

欢迎大家来指点和一起学习,我是爱吃肉的python小白yyyloki,如果你觉得不错的话,那就给我点个👍吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值