zoukankan      html  css  js  c++  java
  • Python—数据类型之字典(Dict)

    四、查询

    1.dic[key]:可以通过key来索引查询字典的元素,若键不存在,则会抛出KeyError异常。

    d = {'age':27, 'name':'liu', 'sex':'male'}
    print(d["age"])      # 结果:27
    print(d["score"])    # 结果:KeyError: 'score',报错了

    2.get(key)方法:不会抛出异常,不存在则返回None,也可以设置默认返回值。

    d = {'age':27, 'name':'liu', 'sex':'male'}
    print(d.get('name'))             # 结果:liu             
    print(d.get('addr'))             # 结果:None     
    print(d.get('addr', '河南'))      # 结果:河南
    

    3.与第二种类似,区别在于setdefault方法会更新字典。

    d = {'age':27, 'name':'liu', 'sex':'male'}
    print(d.setdefault('addr'))             # 结果:None,此时字典已经更新了,addr值为None。
    print(d.setdefault('addr', '河南'))      # 结果:None,如果没有第二行,此时返回:河南

    五、for 循环遍历打印字典

    # -*- coding:utf-8 -*-
    dic = {"name":"jack", "age":27, "score":100}
    
    # 循环打印 key
    for k in dic:    
        print(k)      # 结果:name  age  score
    for k in dic.keys():  
        print(k)      # 结果:name  age  score
    
    # 循环打印 values
    for v in dic.values():  
        print(v)      # jack  27  100
    
    # 循环打印 key + values
    for t in dic.items():
        print(t)      # 结果:('name', 'jack')  ('age', 27)  ('score', 100)
    for k, v in dic.items():
        print(k, v)   # 结果:k是键,v是值
    for k in dic:    
        print(k, dic[k])

    判断一个对象是否为字典,可以使用isinstance方法

    d = {"name":"liu", "age":27}
    
    print(isinstance(d, dict))   # 如果是字典,返回True,否则返回False
    print("{0} is {1}".format(d, isinstance(d, dict)))

    其它数据类型转成字典

    arr1 = ['jack', 'rose', 'marry']
    arr2 = [68, 85, 66]
    dict1 = dict(zip(arr1, arr2))
    print(dict1)      # {'rose': 85, 'marry': 66, 'jack': 68}
    
    dict2 = dict((('a',2), ('b',4)))
    print(dict2)      # {'a': 2, 'b': 4}
     
    dict3 = dict((['a',2], ['b',4]))
    print(dict3)      # {'a': 2, 'b': 4}
     
    dict4 = dict([('a',2), ('b',4)])
    print(dict4)      # {'a': 2, 'b': 4}
     
    dict5 = dict([['a',2], ['b',4]])
    print(dict5)      # {'a': 2, 'b': 4}
    
  • 相关阅读:
    秒杀多线程第十篇 生产者消费者问题 (续)
    平面最近点距离问题(分治法)
    阿里神马搜索算法实习生 二面
    37. Sudoku Solver
    52. N-Queens II(数个数)
    51. N-Queens
    89. Gray Code(公式题)
    22. Generate Parentheses(回溯)
    回溯总结
    40. Combination Sum II
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/12083963.html
Copyright © 2011-2022 走看看