字典

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、在字典上查找比在列表上查找更快。

split()方法

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

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

一些强制类型转换

float()    转化成浮点数

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

str()     转化成string

python中的字典和类的区别_Python中的 字典和字典数据类型相关推荐

  1. python中的字典和类的区别_Python:我应该使用类还是字典?

    我认为每个人的用法对我来说太主观了,所以我只是坚持数字. 我比较了创build和更改字典中的variables,new_style类和new_style类带槽的时间. 这是我用来testing它的代码 ...

  2. python中函数和类的区别_Python中函数和方法的区别

    简单总结: 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(method). 首先摒弃错误认知:并不是类中的调用都叫方法 函数 ...

  3. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  4. python中的方法和函数的区别_Python中函数和方法的区别

    在Python中函数和方法是有区别的. 区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中. 区别二定义的方式: 1.函数定义的方式 def关键字  然后接函数名 再是 ...

  5. python中字典和集合的区别_Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...

  6. python中的方法和函数的区别_python中函数与方法的区别?

    Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...

  7. C++中结构体与类的区别介绍

    在参与以C++为编程基础的项目应用中总会遇到结构体类型与类的数据类型,但是其具体应用区别模糊不清 现将其区别总结如下,欢迎补充共同学习(先介绍C和C++中结构体的不同,再对比C++中结构体与类的区别) ...

  8. java 的方法是静态的类_Java中单例模式和静态方法类的区别

    最近翻看了一些资料,发现JAVA的单例模式并不简单:PHP并没有线程安全的问题,一个请求在结束后生命周期就结束了,PHP设计单例模式仅仅是为了如果在同一个页面多次处理,可以不用重复创建对象而已:JAV ...

  9. python函数和类的区别_Python中类中的方法还有区别?

    上一篇,我们讲到Python类中的属性是有区别的,爱思考的小伙伴们可能就会问了,Python中的方法是不是也有区别呢?是的,而且Python中的方法区别更大,让我们来看看吧~ Python类中的三种方 ...

最新文章

  1. 2.innodb后台线程
  2. 《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
  3. hyperledge工具-cryptogen
  4. 日期型转json格式(springboot)
  5. 猎豹浏览器网页声音怎么关闭
  6. 常见的问题:https://localhost:1158/em 无法打开
  7. hdu---2087---剪花布条
  8. 全国计算机考试一级在线模拟,全国计算机等级考试一级模拟试题和答案
  9. 飞鱼星路由器常见问题解答
  10. 爬虫问题,内容应该如何解码,base64解码技巧,从哪里开始分析
  11. Python 实现生命游戏
  12. 线性代数学习笔记7-4:马尔可夫矩阵、矩阵幂的稳态问题
  13. 9.浏览器原理之浏览器垃圾回收机制
  14. 参与CSDN1024程序员节活动
  15. 微信授权与拒绝授权的弹窗处理
  16. 深入CSS vertical-align属性
  17. 从熵增理论中我们到底悟到了什么……
  18. 如何使用ABP进行软件开发(2) 领域驱动设计和三层架构的对比
  19. openresty mysql 批量_OpenResty负载均衡MySQL
  20. 饮水思源:Ubuntu用户应关注Debian

热门文章

  1. zookeeper之理论基础
  2. eclipse的editor does not contain a main type错误
  3. javaWeb企业分布式、互联网、云开发平台-Jeesz
  4. Matlab中插值函数使用
  5. NLP --- 隐马尔可夫HMM(第一个、第二个问题解决方案)
  6. Javascript第五章切换层效果、复选框的全选十三课
  7. 如何搭建maven中,分布式工程
  8. android bugly 错误分析,使用 Robolectric 单元测试运行时 bugly 初始化异常
  9. 如何将矩阵化为约旦标准型_【解题方法】矩阵初等变换的应用
  10. python文件读写及形式转化和CGI的简单应用