• python基础-- 05 Dict&Set


    1.字典dict

    1.1字典定义

    >>> d={'Adam':95,'Lisa':85,'Bart':59}

    1.2字典访问

    1.2.1key方法访问

             dict[key]

    >>> d['Adam']

    95

             判断key是否在dict中--in(只能判断key)

    >>> d

    {'Lisa': 85, 'Adam': 95, 'Bart': 59}

    >>> 'Paul' in d

    False

    >>> 'Lisa' in d

    True

    >>> 85 in d

    False

    1.2.2get方法访问

             dict.get(key)

             dict本身提供的一个 get 方法,在Key不存在的时候,返回None

    >>> d['Paul']

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    KeyError: 'Paul'

    >>> d.get('Adam')

    95

    >>> d.get('Paul')

    1.3字典特点

    查找速度快,占用内存高

    key值不可重复

    key-value对没有顺序

    作为key的对象类型必须为不可变的类型

           不可变的类型:字符串、浮点数、整数等

           可变的类型:list等

    1.4字典更新

           dict[key]=value

           注:如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value

    1.5字典遍历

    1.5.1迭代dict的keys

    for-in语句直接作用于dict时,拿到的是dict的key

    >>> for key in d:

    ...    print "%s : %s" % (key,d[key])

    ...

    Lisa : 85

    Adam : 95

    Bart : 59

    1.5.2迭代dict的values

    方法

    dict.values()把dict的所有values取出来,转换为一个List

    dict.itervalues()只是把dict的所有values取出来,并不转换为list,所以比dict.values()方法占用更少的内存

    举例

    >>> d.values()

    [85, 95, 59]

    >>> d.itervalues()

    <dictionary-valueiterator object at 0x0000000002487F98>

    >>> for i in d.itervalues():

    ...    print i

    ...

    85

    95

    59

    1.5.3迭代dict的keys和values

    方法

    dict.items() 把dict对象转换成了包含tuple的list

    dict.iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple, 所以, iteritems() 不占用额外的内存

    举例

    >>> d.items()

    [('Lisa', 85), ('Adam', 95), ('Bart', 59)]

    >>> d.iteritems()

    <dictionary-itemiterator object at 0x0000000002487F98>

    >>> for key,value in d.iteritems():

    ...    print key,value

    ...

    Lisa 85

    Adam 95

    Bart 59

    1.6有序字典

    from collections import OrderedDict
    
    favorite_languages = OrderedDict()
    
    favorite_languages['jen'] = 'python'
    favorite_languages['sarah'] = 'c'
    favorite_languages['edward'] = 'ruby'
    favorite_languages['phil'] = 'python'
    
    for name, language in favorite_languages.items():
        print(name.title() + "'s favorite language is " + language.title() + ".")

    2.集合set

    2.1特点

    set的元素没有重复

    set存储的元素和dict的key类似,必须是不变对象

    set的元素是无序的

    2.2创建

    调用 set() 并传入一个 list,list的元素将作为set的元素

    >>> s=set(['A','B','C'])

    2.3访问

    由于set存储的是无序集合,所以我们没法通过索引来访问。

    访问 set中的某个元素实际上就是判断一个元素是否在set中。

    >>> 'Bart' in s

    False

    2.4遍历

    for-in遍历

    2.5更新

    由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:

    一是把新的元素添加到set中,二是把已有元素从set中删除。

             添加:s.add(object)

             删除:s.remove(object)  # 注:删除如果元素不存在,则会报错。

  • 相关阅读:
    C#调用VC++.net托管库程序集DLL
    SQL Server 2008 评估期已过期解决办法
    TFS2010安装(转)
    将dll添加到GAC(Global Assembly Cache)中
    LINQ to SQL with NOLOCK
    SQL Server 2008创建定期自动备份任务(转)
    问题解决记录(一)
    控制台读入
    数据库
    a标签的onclick与href的执行顺序
  • 原文地址:https://www.cnblogs.com/yc913344706/p/7748561.html
Copyright © 2020-2023  润新知