美文网首页
pytho字典集合

pytho字典集合

作者: 知识学者 | 来源:发表于2018-04-26 11:32 被阅读55次

    字典是在大括号里放置逗号分隔的 关键字:值对 ,{key ,value},是无序的,关键字相当于一个内存地址。dictionary是python唯一的映射关系, 关键字必须是可以hash的,可以哈希表示key必须是不可变的类型,如数字,string,tuple等,否则会出现typeerror,可以hash函数,判断一个对象是否可以映射。

    >>> hash(123)
    123
    >>> hash('str')
    -311850177
    >>> hash([1,2])
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        hash([1,2])
    TypeError: unhashable type: 'list'
    >>> {6,'six'}
    {'six', 6}
    >>> {[1,2],2}
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        {[1,2],2}
    TypeError: unhashable type: 'list'
    

    dictionary的index
    序列是以连续的整数作为index,而dictionary以key为索引,key可以是任意不可变的类型。

    字典的创建:{key:value[,关键字:值n]}
    dict()函数创建字典,list和tuple作为参数

    >>> d1=dict(([1,'a'],[2,'b']))
    >>> print(d1)
    {1: 'a', 2: 'b'}
    >>> d2=dict([[1,'a'],[2,'b']])
    >>> d2
    

    dictionary基本操作

    >>> dt1={'name':{'first':'tom','second':'jack'}}
    >>> dt1['name']['second']
    'jack'
    >>> dt2={'sore':[66,77,88]}
    >>> dt2['sore'][0]
    66
    

    更新dictionary
    如果key已经存在,则修改对应的值。如果不存在,则增加一个元素。

    >>> dt1={'n1':66,'n2':68}
    >>> dt1['n1']=22
    >>> dt1['n3']=99
    >>> dt1
    {'n1': 22, 'n3': 99, 'n2': 68}
    
    

    del dictionary_name[key] 删除关键字对应的元素
    del dictionary_name 删除字典

    >>> del dt1['n1']
    >>> dt1
    {'n3': 99, 'n2': 68}
    >>> del dt1
    >>> dt1
    Traceback (most recent call last):
      File "<pyshell#7>", line 1, in <module>
        dt1
    NameError: name 'dt1' is not defined
    

    字典长度获取 len(),也有max(),min(),sum()等。

    >>> dt={1:'a1',2:'a2',3:'a3'}
    >>> len(dt)
    3
    >>> max(dt)
    3
    >>> sum(dt)
    6
    

    dictionary对象常用的方法。
    d.keys() 换回包含字典所有key的list
    d.values()返回字典所有值的list
    d.items()返回一个包含所有 (key,value) tuple的列表。

    >>> dt
    {1: 'a1', 2: 'a2', 3: 'a3'}
    >>> dt.keys()
    dict_keys([1, 2, 3])
    >>> print(dt.values())
    dict_values(['a1', 'a2', 'a3'])
    >>> print(dt.items())
    dict_items([(1, 'a1'), (2, 'a2'), (3, 'a3')])
    

    d.copy() 返回字典d的副本
    d.clear() 删除字典d的全部元素,字典d变成空字典
    d.pop(key) 从字典d删除关键字key并返回删除的值。

    >>> d=dt.copy()
    >>> d
    {1: 'a1', 2: 'a2', 3: 'a3'}
    >>> d.pop(1)
    'a1'
    >>> d
    {2: 'a2', 3: 'a3'}
    >>> d.clear()
    >>> d
    {}
    
    

    get()方法和pop()方法
    d.get(key[,value]),如果字典关键字是key,则返回key对应的值,如果key不存在,则返回None。pop()的方法和get方法相似。

    >>> dt={'z':11,22:'bb','ee':68}
    >>> dt.get(22)
    'bb'
    >>> dt.pop('z')
    11
    >>> dt
    {'ee': 68, 22: 'bb'}
    

    d1.update(d2)方法,把d2的字典元素添加到d1中。has_key()方法,如果key在字典则返回true,否则返回false。

    >>> dt0={'11':11,'22':33}
    >>> dt.update(dt0)
    >>> dt
    {'11': 11, 'ee': 68, 22: 'bb', '22': 33}
    
    

    dictionary的遍历

    def display_dict(dt):
        for key in dt.keys():
            print('key={0},value={1}'.format(key,dt[key]))
    
    
    >>> dt={'11':11,'22':22,'33':33}
    >>> display_dict(dt)
    key=11,value=11
    key=22,value=22
    key=33,value=33
    
    def display_dict(dt):
        for  item in dt.items():
            print(item)
    
    >>> display_dict(dt)
    ('33', 33)
    ('11', 11)
    ('22', 22)
    

    集合的操作
    在python中,集合是一堆无序排列,不重复的元素,类似数学的集合,可以去重,求交集,并集,补集等等。
    用set()函数 或者{ }创建集合

    >>> se={11,22,33}
    >>> print(se)
    {33, 11, 22}
    >>> se2=set(44,55,66)
    >>> se2
    {66, 44, 55}
    >>> c=se|se2
    >>> c
    {33, 66, 22, 55, 11, 44}
    >>> c1=se&c
    >>> c1
    {33, 11, 22}
    >>> c2=c^se
    >>> c2
    {66, 55, 44}
    
    

    相关文章

      网友评论

          本文标题:pytho字典集合

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