• Python中的 字典和字典数据类型


    字典


    1.字典是Python的内建数据类型,我们知道序列是以连续的整数为索引,而字典用关键字作为索引。特别的,关键字必须是不可变类型,常为字符串或者数值。

    #如果元组中只包含字符串和数字,它可以作为关键字,如果它直接或间接地包含了可变对象,就不能当做关键字。
    #不能用链表做关键字,因为链表可以用索引、切割或者 append() 和 extend() 等方法改变。
    (key:value)

    同一个dict中键值必须唯一

    用{}来创建空字典

    dict.keys()返回字典中所有关键字组成的无序列表

    dict.values()

    dict.items()   items()方法得出来的项都是元组。

    >>> englishLetterFreq = {'E': 12.70, 'T': 9.06, 'A': 8.17, 'O': 7.51, 'I': 6.97, 'N': 6.75, 'S': 6.33, 'H': 6.09, 'R': 5.99, 'D': 4.25, 'L': 4.03, 'C': 2.78, 'U': 2.76, 'M': 2.41, 'W': 2.36, 'F': 2.23, 'G': 2.02, 'Y': 1.97, 'P': 1.93, 'B': 1.29, 'V': 0.98, 'K': 0.77, 'J': 0.15, 'X': 0.15, 'Q': 0.10, 'Z': 0.07}
    >>> print(englishLetterFreq.keys())
    dict_keys(['E', 'T', 'A', 'O', 'I', 'N', 'S', 'H', 'R', 'D', 'L', 'C', 'U', 'M', 'W', 'F', 'G', 'Y', 'P', 'B', 'V', 'K', 'J', 'X', 'Q', 'Z'])
    >>> print(englishLetterFreq.values()) 
    dict_values([12.7, 9.06, 8.17, 7.51, 6.97, 6.75, 6.33, 6.09, 5.99, 4.25, 4.03, 2.78, 2.76, 2.41, 2.36, 2.23, 2.02, 1.97, 1.93, 1.29, 0.98, 0.77, 0.15, 0.15, 0.1, 0.07])
    >>> print(englishLetterFreq.items())  
    dict_items([('E', 12.7), ('T', 9.06), ('A', 8.17), ('O', 7.51), ('I', 6.97), ('N', 6.75), ('S', 6.33), ('H', 6.09), ('R', 5.99), ('D', 4.25), ('L', 4.03), ('C', 2.78), ('U', 2.76), ('M', 2.41), ('W', 2.36), ('F', 2.23), ('G', 2.02), ('Y', 1.97), ('P', 1.93), ('B', 1.29), ('V', 0.98), ('K', 0.77), ('J', 0.15), ('X', 0.15), ('Q', 0.1), ('Z', 0.07)])
    >>> list(englishLetterFreq.items())  
    [('E', 12.7), ('T', 9.06), ('A', 8.17), ('O', 7.51), ('I', 6.97), ('N', 6.75), ('S', 6.33), ('H', 6.09), ('R', 5.99), ('D', 4.25), ('L', 4.03), ('C', 2.78), ('U', 2.76), ('M', 2.41), ('W', 2.36), ('F', 2.23), ('G', 2.02), ('Y', 1.97), ('P', 1.93), ('B', 1.29), ('V', 0.98), ('K', 0.77), ('J', 0.15), ('X', 0.15), ('Q', 0.1), ('Z', 0.07)]
    >>>

    使用 in 关键字(指 Python 语法)可以检查字典中是否存在某个关键字

    dict() 构造函数可以直接从 key-value 对中创建字典:

    >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    {'sape': 4139, 'jack': 4098, 'guido': 4127}

    字典推导式可以从任意的键值表达式中创建字典:

    >>> {x: x**2 for x in (2, 4, 6)}
    {2: 4, 4: 16, 6: 36}

    如果关键字都是简单的字符串,有时通过关键字参数指定 key-value 对更为方便:

    >>> dict(sape=4139, guido=4127, jack=4098)
    {'sape': 4139, 'jack': 4098, 'guido': 4127}

    和列表一样,变量保存的并不是字典值本身,而是字典的引用,

    列表可以包含其他列表,同样,字典也可以包含其他字典


    字典中使用len()函数:

      返回字典中的(key:value)对的数量


    字典中使用in运算:

      in运算符检查一个键key是否在字典里,而不是一个value


    字典中使用for运算符:

      迭代字典里的键key  !!!!!!


    总结一下字典和列表的区别:

    1、字典的项没有固定的顺序,而列表中有顺序,即下标

    2、字典不能使用+运算符来进行连接。

      如果是添加新的项,那么就添加新的(key:value)对即可:

        foo['a new key'] = 'a string'

    3、列表下标是整数索引,从 0 到 len(list)-1; 而字典可以有任何键。

    4、在字典上查找比在列表上查找更快。

      in 运算符在字典上使用比在列表中使用快,参考http://invpy.com/listvsdict


    split()方法

      'a long string with space or not'.split() 返回字符串列表,在空格的地方做分割。

      也可以给split('xxx')方法传递一个可选的参数,告诉他在出现这个参数'xxx'的时候做分割


    一些强制类型转换 

      float()    转化成浮点数

      int()       转化成整数,去掉小数

      str()       转化成string

  • 相关阅读:
    计算 MD5值
    CoreDate的使用
    Spring入门---Spring AOP编程及示例【第一天】
    Spring入门---Spring Bean的作用域【第一天】
    Spring入门---示例四----集合与数组类型注入【第一天】
    Spring入门---示例三总结反思---配置文件【第一天】
    Spring入门---示例三,Spring IOC控制反转之依赖注入【第一天】
    Spring入门---示例二,面向接口编程技术【第一天】
    Spring入门---了解七个模块,以及示例一【第一天】
    eclipse局域网项目部署(纯感想)
  • 原文地址:https://www.cnblogs.com/PiaYie/p/13267406.html
Copyright © 2020-2023  润新知