• python学习(七)字典学习


    #!/usr/bin/python
    
    
    # 字典
    # 当时学java的时候, 语言基础就学了好久, 然后是各种API, 最后才是集合
    
    # 键值对, 可变
    
    # 1. 映射操作
    
    D = {'food' : 'Spam', 'quantity':4, 'color':'pink'}
    
    print(D['food'])                # 通过键来获取值
    
    D['quantity'] += 1              # 改变键对应的值
    
    
    # 另一种构造字典的方法
    D = {}
    D['name'] = 'Bob'
    D['job'] = 'dev'
    D['age'] = 40
    
    # 在Python通过字典编写的搜索方法很快
    
    # 重访嵌套
    rec = {'name': {'first':'Bob', 'last':'Smith'},
           'job':['dev', 'mgr'],
           'age':40.5}
    
    rec['name']
    
    rec['name']['last']
    rec['job']
    rec['job'][-1]                  # 'job'键对应的列表的最后一个值
    
    rec['job'].append('janitor')
    
    # 所建立的这些对象都不需要手动释放, 有Python的自动垃圾收集
    
    
    # 2. 键的排序: for循环
    # 字典仅支持通过键获取元素, 而且有时候还是无需的
    # 如锅要对字典进行排序, 先获取键的列表, 然后使用sort方法进行排序
    # 最后使用for循环逐个显示结果
    Ks = list(D.keys())             # 无需列表
    Ks.sort()                       # 对key进行排序
    
    for key in Ks:
        print(key, '=>', D[key])
    
    for c in 'spam':
        print(c.upper())
    
    x = 4
    while x > 0:
        print('spam!' * x)
        x -= 1
    
    # 迭代和优化
    
    
    squares = [ x ** 2 for x in [1, 2, 3, 4, 5]]
    print(squares)
    
    squares = []
    for x in [1, 2, 3, 4, 5]:
        squares.append(x ** 2)
    
    # 列表解析和相关的函数编程工具, 如map和filter, 通常运行得比for循环快
    # 首先为了简单和可读性去编写代码, 在程序可以工作, 并证实确实有必要考虑性能之后, 再考虑该问题
    # 关于这个python提供了time以及timeit和profile模块
    
    
    # 不存在的键: if 测试
    
    D = { 'a' : 1, 'c' : 3, 'b' : 2}
    
    D['e'] = 99
    
    # D['f'] 键'f'不存在, 这样使用会报错的
    # in关系表达式允许我们查询字典中一个键是否存在
    
    if not 'f' in D:
        print('missing key f in D')
    
    value = D.get('x', 0)           # 获取键'x'的值, 如果没有获取到那么就是0付给value
        
        
    D[None] = 4                     # None也可以作为键耶
    print(D)
  • 相关阅读:
    [ES6] Objects create-shorthand && Destructuring
    [ES6] Spread Operator
    [ES6] Rest Parameter
    [ES6] Function Params
    [React] Extracting Private React Components
    [Javascript] Array methods in depth
    生物-大脑极限:大脑极限
    生物-永生计划:永生计划
    物理-纳米技术-纳米技术应用:纳米技术应用
    物理-纳米技术:纳米技术
  • 原文地址:https://www.cnblogs.com/tuhooo/p/7705424.html
Copyright © 2020-2023  润新知