Python字典和集合

来源:互联网 发布:微信小说系统源码 编辑:程序博客网 时间:2024/05/22 06:13

字典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)        # 包含
1 0
原创粉丝点击