zoukankan      html  css  js  c++  java
  • 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}
  • 相关阅读:
    整数数组中最大子数组的和的问题(续)
    整数数组中最大子数组的和的问题
    PHP开发环境(Apache+mysql+PHPstorm+php)的搭建
    echart 库 初始
    2.15 学习总结 之 天气预报APP volley(HTTP库)之StringRequest
    2.14 学习总结 之 序列化
    2.13 阶段实战 使用layui重构选课系统
    2.12 学习总结 之 表单校验插件validate
    jsp连接数据库的乱码问题 servlet请求参数编码处理get post
    Rocket
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/12325682.html
Copyright © 2011-2022 走看看