• Python--Demo11--列表型:字典类型


    字典

    解释:

    • 字典和列表一样都是一列值得集合;
    • 字典的索引并不像列表那样必须是整数,字典的索引可以是很多类型;
    • 字典的索引被称为“键”,键及键关联的值合在一起称为“键值”对。

    语法:

    {"key1":value,"key2":value,....}或者{'key1':value,'key2':value,....}

    示例:

    >>> mydic={'name':'bobo','age':12,'bobby':'apple'}
    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> mydic['age']
    12
    >>> complexdic={'id':1,'content':mydic,'range':10}
    >>> complexdic
    {'id': 1, 'content': {'name': 'bobo', 'age': 12, 'bobby': 'apple'}, 'range': 10}
    >>> complexdic['content']
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> complexdic['content']['name']
    'bobo'

    说明:字典和列表按照索引取值,dict['键名'];字典中键对应的值的类型还可以是字典。

    字典与列表:

    字典中的键值对是不按照顺序存储的,所以只要键值对个数一样,内容一样,那么这两个字典是相等的

    示例:

    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> mydd={'name':'bobo',"bobby":'apple',"age":12}
    >>> mydd
    {'name': 'bobo', 'bobby': 'apple', 'age': 12}
    >>> mydd==mydic
    True
    >>> mylis=[1,2,3]
    >>> mylis
    [1, 2, 3]
    >>> myll=[1,3,2]
    >>> myll
    [1, 3, 2]
    >>> mylis==myll
    False

    说明:字典不是顺序存储的,列表是顺序存储的。字典像列表那样切片。

    字典遍历方法:

    keys()、values()、items():分别是获取所有得键、获取所有得值、获取所有的键值(这个值是个元组)

    示例:

    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> mydic.keys()
    dict_keys(['name', 'age', 'bobby'])
    >>> for x in mydic.keys():
    ...     print(x)
    ...
    name
    age
    bobby
    >>> for x in mydic.values():
    ...     print(x)
    ...
    bobo
    12
    apple
    >>> for x,y in mydic.items():
    ...     print(x,y)
    ...
    name bobo
    age 12
    bobby apple

    检查字典中的键、值存在情况

    说明:在访问一个键的值之前,确定键在字典中是否存在是十分重要的。

    get()方法:

    两个参数,第一个是键名;第二个是指定值;当键对应的值不存在或者键都不存在的时候,我们可以返回指定的值。

    示例:

    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> key_value=mydic.get('adress',-1)
    >>> key_value
    -1
    >>> key_value1=mydic.get('name','不存在')
    >>> key_value1
    'bobo'

    说明:当键对应的值存在的时候,get会返回字典中的键对应的值;如果不存在就会返回我们指定的值

    setdefault()方法:

    当遇到给一个键设置一个默认值是,setdefault()方法就十分方便了。它内置检查机制,帮我们很好地解决判断键是否存在的问题。

    示例1:我们没有setdefault()时的做法:

    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple'}
    >>> if 'color' in mydic:
    ...     pass
    ... else:
    ...     mydic['color']='yellow'
    ...
    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow'}

    示例2:当使用了setdefault()方法:

    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow'}
    >>> mydic.setdefault('adress','china')
    'china'
    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow', 'adress': 'china'}
    >>> mydic.setdefault('adress','usa')
    'china'
    >>> mydic
    {'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow', 'adress': 'china'}

    说明:setdefault()方法在检查到没有键对应的值时,会将键添加到字典中,并设置我们指定的默认值。当发现键有对应的值后,就不会再对键对应的值进行重新赋值。

    示例3:给你一串字符串,要求你能够计算出每一个字符在字符串中出现了几次?

    思路:字符--次数,这明显想让我们使用字典昂。字符作为键--次数作为值。

    示例:

    mystr='alsjdnwlsdisla'
    count_dic={}
    for item in mystr:
        count_dic.setdefault(item,0) # 先给键添加到字典中,防止给键设置值时报错
        count_dic[item]=count_dic[item]+1 # 通过索引给索引对应的值赋值 每次遍历次数加一
    print(count_dic)

    输出结果:

    {'a': 2, 'l': 3, 's': 3, 'j': 1, 'd': 2, 'n': 1, 'w': 1, 'i': 1}
  • 相关阅读:
    JS+CSS自动切换选项卡
    漂亮的透明css菜单 下拉效果
    HTML下的默认样式属性
    测测你是否近视!
    CDATA C#操作XML(无命名空间),添加/删除/编辑节点
    JS 键盘事件
    JS获取Cookie值
    解决windows7下不能以管理员身份安装msi的问题
    引用Interop.SQLDMO.dll后的注意事项。
    c#正则表达式用法大全
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/12325682.html
Copyright © 2020-2023  润新知