python中表达式4+0.5值的数据类型为_Python 核心数据类型及其方法详解

字典Python中的字典不是序列,而是一种映射。映射是一个其他对象的集合,但是她们是通过键而不是位置来存储的。实际上,映射并没有任何可靠的从左至右的 顺序。它们简单地将键映射为值。字典是python核心对象集合中唯一一种映射类型。也具有可变性-可以改变,并可以随需求增加或减少,就像列表那样。1、映射操作作为常量编写时,字典编写在大括号中,并包含了一系列的“键:值”对。在我们需要将键和一系列值相关联时(如描述某事务的某属性)字典很有用。>>> D={'food':'spam','quantity':4,'color':'pink'}字典可以通过键对这个字典进行索引来读取或改变键所关联的值。字典的索引操作使用的语法和序列相同,但在方括号中的元素是键,而不是相对位置>>> D{'food': 'spam', 'color': 'pink', 'quantity': 4}>>> D['food']'spam'>>> D['quantity']+15除了使用大括号这种常量形式,还可以一下不同的创建字典的方法>>> D={}>>> D['name']='diege'>>> D['job']='op'>>> D['age']='28'>>> D{'age': '28', 'job': 'op', 'name': 'diege'}>>> D['name']'diege'>>> print D['name']diege2、重访嵌套更复杂一点字典。比如记录名和姓,多个工作头衔。产生了python对象嵌套的应用>>> off={'name':{'first':'wang','last':'diege'},'job'['dev','mgr'],'age':28}>>> off{'age': 28, 'job': ['dev', 'mgr'], 'name': {'last': 'diege', 'first': 'wang'}}顶层三个键两个字典嵌套的读取>>> off['name']{'last': 'diege', 'first': 'wang'}>>> off['name']['last']'diege'字典嵌套列表的读取>>> off['job']['dev', 'mgr']>>> off['job'][1]'mgr'>>> off['job'][0]'dev'为嵌套添加数据>>> off['job'].append('jantior')>>> off['job']['dev', 'mgr', 'jantior']>>> off['job'][2]'jantior'>>> off{'age': 28, 'job': ['dev', 'mgr', 'jantior'], 'name': {'last': 'diege', 'first': 'wang'}}在底层语言中不要改对象时,必须小心地区释放掉所有对象空间。在python中,当最后一次引用对象后,这个对象所有占用的内存空间将自动清理掉>>> off=0从技术上说。python具有一种所谓垃圾收集的特性,在程序运行时可以清理不再使用的内存。从而从管理代码中这样的细节中解放出来,在pyton中,一旦一个对象的最后一次饮用被移除,空间将会理解收回。3、键的排序:for循环作为映射,字典进支持通过键获取元素。通过调用方法,他们也支持类型特定的操作。字典中没有顺序,那么我们需要强调一个顺序时,如何办?可以通过最新的sorted内置函数(sorted返回结果并对对象类型进行排序)。>>> D={'a':1,'b':2,'c':3}>>> D{'a': 1, 'c': 3, 'b': 2}>>> sorted(D)['a', 'b', 'c']>>> for key in sorted(D):... print key,'=>',D[key]...a => 1b => 2c => 3for循环是一个遍历一个序列中所有元素并按顺序对每一元素运行一些代码简单有效的方法。for循环及与其作用相近的while循环,是在脚本中编写重复性任务语句的主要方法也可以用在字符串中>>> for c in 'diege':... print c...diege4、迭代和优化>>> squ=[x**2 for x in [1,2,3,4,5]]>>> squ[1, 4, 9, 16, 25]能够编写一个等效的for循环,通过在运行时手动增加列表来创建最终的列表>>> squ=[]>>> for x in [1,2,3,4,5]:... squ.append(x**2)...>>> squ[1, 4, 9, 16, 25]pyhon一个主要的原则是:首先为了简单和可读性去编写代码。在程序运行后,并证明了确实有必要考虑性能后,再考虑该问题。更多情况是代码本身就已足够 快了。如果需要提高代码的性能。那么python提供time,以及timeit模块和profile模块,用于测试运行时间.5、不存在的键:if测试尽管我们能通过给新的键赋值来扩展字典,但是获取一个不存在的键值仍然是一个错误。避免获取到一个不存在的键我们使用字典的has_key方法判断键的存在性>>> D['k']Traceback (most recent call last):File "", line 1, inKeyError: 'k'>>> help(D.has_key)Help on built-in function has_key:has_key(...)D.has_key(k) -> True if D has a key k, else False>>> D.has_key('k')False>>> if not D.has_key('f'):... print 'missing'...missing测试的结果是真的话j将运行一些代码。if是python的主要选择工具。完整语法为if elif else还有其他的方法创建字典并避免取不存在的字典键(包括get方法,成员表达式,以及try语句)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值