Python字典和集合

字典dict

如何创建字典和给字典赋值

创建方法一:
    dic = {}  #创建
    dic = {key1:value2, key2:value2, …}  #赋值

字典就是用大括号包起来的的键值对的集合(键值对)

创建方法二:
    用dict()函数
    dict('name':'jack','age':32)
    dict(['x',1],['y',2])
    adict = {}.fromkeys((‘x','y'), -1) #这样创建的字典的value是一样的,若不给值,则为None。

字典的基本操作

如何访问字典中的值?
adict[key] 
    形式返回键key对应的值value,如果key不在字典中会引发一个KeyError,如何检查key是否在字典中?
has_key()
    形如:adict.haskey(‘name') 有–>True,无–>False
    b、in 、not in   形如:'name' in adict      有–>True,无–>False
如何更新字典?
    a、添加一个数据项(新元素)或键值对
adict[new_key] = value 形式添加一个项
    b、更新一个数据项(元素)或键值对
adict[old_key] = new_value
    c、删除一个数据项(元素)或键值对
del adict[key] 删除键key的项 / del adict 删除整个字典
adict.pop(key) 删除键key的项并返回key对应的 value值

相关的函数

len() 返回字典的长度
hash() 返回对象的哈希值,可以用来判断一个对象能否用来作为字典的键

字典的方法

dict.keys() 返回一个包含字典所有KEY的列表;
dict.values() 返回一个包含字典所有value的列表;
dict.items() 返回一个包含所有(键,值)元祖的列表;
dict.clear() 删除字典中的所有项或元素;
dict.copy() 返回一个字典浅拷贝的副本;
dict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
dict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
dict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
dict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
dict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
dict.update(bdict) 将字典bdict的键值对添加到字典adict中。


字典的遍历

for item in dic.items():
    print (item)

for value in dic.values(): 
    print (value)

for key in dic.keys():
    print (key)

for item,value in adict.items(): 
    print ('key=%s, value=%s' % (item, value))

或

for item,value in adict.iteritems(): 
    print ('key=%s, value=%s' %(item, value))

注意:

键与值用冒号“:”分开;
项与项用逗号“,”分开;
字典中的键必须是唯一的不能重复,而值可以不唯一(数据类型可多种)。

集合 set

运算操作:

    s1 = {0}
    s2 = {i % 2 for i in range(10)}
    s = set('hi')
    t = set(['h', 'e', 'l', 'l', 'o'])

    print(s.intersection(t), s & t)     # 交集
    print(s.union(t), s | t)            # 并集 
    print(s.difference(t), s - t)       # 差集 
    print(s.symmetric_difference(t), s ^ t)   # 对称差集 
    print(s1.issubset(s2), s1 <= s2)          # 子集
    print(s1.issuperset(s2), s1 >= s2)        # 包含
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值