美文网首页python核心编程第二版
python核心编程第二版:第七章--映射与集合类型

python核心编程第二版:第七章--映射与集合类型

作者: Bioconductor | 来源:发表于2016-08-08 16:17 被阅读34次
    • 创建字典和给字典赋值

    方法一

    dict1 = {}
    dict2 = {'name':'earth','port':80}
    print dict1,dict2
    

    结果

    {} {'name': 'earth', 'port': 80}
    

    方法二:用dict()

    fdict = dict((['x',1],['y',2]))
    print fdict
    

    结果

    {'y': 2, 'x': 1}
    

    方法三;fromkeys()

    ddict = {}.fromkeys(('x','y'),-1)
    print ddict
    

    结果

    {'y': -1, 'x': -1}
    
    • 访问字典中的值value

    例子

    dict2 = {'name':'earth','port':80}
    for key in dict2.keys():
        print 'key = %s,value=%s' % (key,dict2[key])
    

    结果

    key = name,value=earth
    key = port,value=80
    
    • 不同的操作结果
      dict2[key] 得value
      dict2.keys() 得keys

    关键词key具有唯一性,vlaue不具有

    in and not in
    返回True and False

    • 更新字典

    例子

    dict2 = {'name':'earth','port':80}
    dict2['name'] = 'venus'
    dict2['port'] = 6969
    dict2['arch'] = 'sunos5'
    print dict2
    

    结果

    {'arch': 'sunos5', 'name': 'venus', 'port': 6969}
    
    • 删除字典元素和字典
      删除键为“name”的条目

    例子

    dict2 = {'name':'earth','port':80}
    del dict2['name']
    print dict2
    

    结果

    {'port': 80}
    
    • 删除dict2中所有的条目

    例子

    dict2 = {'name':'earth','port':80}
    dict2.clear()
    print dict2
    

    结果

    {}
    
    • 删除整个dict2字典
    dict2 = {'name':'earth','port':80}
    del dict2
    print dict2
    

    结果

    Traceback (most recent call last):
      File "E:/workp/python/zx/test.py", line 11, in <module>
        print dict2
    NameError: name 'dict2' is not defined
    
    • 删除并返回键为”name”的条目

    例子

    dict2 = {'name':'earth','port':80}
    dict2.pop('name')
    print dict2
    

    结果

    {'port': 80}
    
    • 标准类型操作符

    比较大小

    例子

    dict4 = {'abc':123}
    dict5 = {'abc':456}
    print dict4 < dict5
    

    结果

    True
    

    例子

    dict5 = {'abc':456}
    dict6 = {'aef':456}
    print dict5 < dict6
    

    结果

    True
    

    解释:

    • 映射类型操作符
      []

    • d[k] = v 通过键’k’,给字典中某元素赋值‘v’
      d[k] 查询字典中某元素的值

    • 成员操作符:in ,not in

    • 字典比较算法
      1、字典的长度
      2、字典的键
      3、字典的值

    字典

    例子

    print dict(zip(('x','y'),(1,2)))
    
    print dict([['x',1],['y',2]])
    
    print dict([('xy'[i-1],i) for i in range(1,3)])
    

    结果

    {'y': 2, 'x': 1}
    {'y': 2, 'x': 1}
    {'y': 2, 'x': 1}
    
    • 复制
      copy()

    例子

    dict8=dict(x=1,y=2)
    print  dict8.copy()
    

    结果

    {'y': 2, 'x': 1}
    len
    
    
    dict8=dict(x=1)
    dict2 ={'name':'earth','port':80}
    print len(dict8),len(dict2)
    

    返回键值对的数目

    例子

    def olduser():
        name = raw_input('login: ')
        pwd = raw_input('passwd: ')
        passwd = db.get(name) #得到设置的密码
        if passwd == pwd:
            pass
        else:
            print 'login incorrect'
            return
    
        print 'welcome back', name
    
    • 集合类型和给集合赋值
    • 列表list
    • 字典dict()
    • 集合set() frozenset()

    例子

    s = set('cheeseshop')
    print s
    t = frozenset('bookshop')
    print t
    

    结果

    set(['c', 'e', 'h', 'o', 'p', 's'])
    frozenset(['b', 'h', 'k', 'o', 'p', 's'])
    
    
    • 访问集合的值
      in or not in

    • 更新集合
      add、update、remove、-=

    • 删除集合中的成员
      del

    • 集合类型操作符

    • 成员关系
      in, not in

    • 等价或不等价
      == ,!= , >= , <= ,子集<、<

    • 联合(|) 等价于OR

    • 交集&

    • 差补/相对补集(-)

    • 对称差分(^)

    • 两个集合(s和t)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合s或者集合t的成员,不能同时属于两个集合。

    • 交集更新(&=)

    • 差更新(-=)

    • 对称差分更新(^=)

    相关文章

      网友评论

        本文标题:python核心编程第二版:第七章--映射与集合类型

        本文链接:https://www.haomeiwen.com/subject/znjrsttx.html