• python dict{}和set([])


    介绍

    dict(dictionary),在其他语言中也称为map,使用键-值(key-value)存储。set和dict类似,也是一组key的集合,但不存储value。字典和set的key都是不允许重复且key不能是列表。
     
     
    一、dict(字典的缩写)
    字典和前面讲的list(列表)很相似,但是list不存在value,同时字典也和xml、json很像。字典使用一对大括号表示
    1.创建字典表
    创建一个学生分数字典
    s={'stu1':80,'stu2':90,'stu3':60}

    2.查询

    查询stu1的分数

    >>> s['stu1']
    80
    >>> 

    3.修改value

    >>> s['stu1']=50
    >>> s
    {'stu3': 60, 'stu2': 90, 'stu1': 50}

    4.增加key

    例如增加一个代表学生stu4-stu7的key-value

    >>> s['stu4-7']=[40,80,50,60]
    >>> s
    {'stu3': 60, 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}

    注意:key不能是变量(python里面的变量不太容易理解,就简单的理解key不能是list就行),但是value可以是变量(python里面的),value可以是常量、字符串、list、tuple等

    >>> s['stu8-9']=(80,50)
    >>> s
    {'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}

    读取stu8的分数

    >>> s['stu8-9'][0]
    80
    >>> 

    5.删除key

    要删除一个key,用pop(key)方法,对应的value也会从dict中删除

    例如:删除key"stu1"

    >>> s.pop('stu1')
    50
    >>> s
    {'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu4-7': [40, 80, 50, 60]}
    >>> s['stu1']
    Traceback (most recent call last):
      File "<pyshell#14>", line 1, in <module>
        s['stu1']
    KeyError: 'stu1'
    >>> 

    6.判断一个key是否存在

    方法1:直接打印输出,如果key不存在会返回错误

    >>> s['stu1']
    Traceback (most recent call last):
      File "<pyshell#14>", line 1, in <module>
        s['stu1']
    KeyError: 'stu1'
    >>> 

    方法2:通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

    s.get('stu1')

    可以用print打印出None

    >>> print (s.get('stu1'))
    None
    >>> 

    可以自己指定key不存在返回的值,例如返回1,但是返回值必须是整形

    >>> s.get('stu1',1)
    1

    方法3:通过in判断key是否存在,不存在返回Flase

    >>> 'stu1' in s
    False
    >>> 'stu2' in s
    True

    二、set([])

    set和dict类似,也是一组key的集合,但不存储value;set和dict一样key不允许是list且key不能重复。

    1.创建set

    要创建一个set,需要提供一个list作为输入集合,注意set的固定格式,set([]),在set()中加入list

    >>> se=set(['a','b','c'])
    >>> se
    {'b', 'c', 'a'}

    注意:list中的每一个元素都是一个key,但是元素不能是list可以是常量、字符串、tuple、浮点型

    2.读取key 

    >>> se
    {'b', 'c', 'a'}

    set不支持索引,所以没办法像list和tuple那样根据索引获取指定的key,比如se[0]会返回错误

    4.增加key

    通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

    >>> se.add('d')
    >>> se
    {'b', 'c', 'd', 'a'}
    >>> 

    5.删除key

    通过remove(key)方法可以删除元素

    >>> se.remove('c')
    >>> se
    {'b', 'd', 'a'}
    >>> 

    6.设置一个list key

    >>> se.add(['e','f'])
    Traceback (most recent call last):
      File "<pyshell#74>", line 1, in <module>
        se.add(['e','f'])
    TypeError: unhashable type: 'list'

    返回错误:没有对应的list哈希表

    注意:这里的['e','f']指的是一个元素(key),只不过它是list元素,set([])中的key不支持list.

    总结

    从dict{}和set([])的返回key可以发现它们是没有固定的顺序的。但是key不能是list。dict的value可以是任何已知的类型值。

    备注:

        作者:pursuer.chen

        博客:http://www.cnblogs.com/chenmh

    本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

    《欢迎交流讨论》

  • 相关阅读:
    题解:luoguP1861 星之器
    题解:LOJ540游戏
    Yii框架常见问题
    常用ubuntu命令
    Python中的映射数据类型 dict
    Python中的编码问题:ASCII码 Unicoden编码 UTF8编码
    Python中的列表、元组的增、删、改、查
    Python 数据类型之 集合 set
    Python中常见的字符串的操作方法:
    Python程序的控制结构用多分支结构处理身体指标BMI问题
  • 原文地址:https://www.cnblogs.com/chenmh/p/5684584.html
Copyright © 2020-2023  润新知