GOOGLE Python大学教程之Python的dict和文件

本文介绍了Python的基本概念,包括字典的使用方法、文件操作技巧及如何进行渐进式开发。涉及字典的创建、访问和遍历,文件的读写操作,并提供了一种有效的开发策略。

谷歌代码大学 > 编程语言

快译通哈希表

Python的高效的键/值的哈希表的结构被称为“快译通”。作为一系列关键:一个字典的内容可以写在大括号{值对},例如快译通= {键:值1,KEY2:值2,... ... }。只是一个“空快译通”是一对空大括号{}。

寻找或设置一个值,在一个字典使用方括号,例如快译通['富']查找关键'富'的价值。字符串,数字和元组的工作作为键,和任何类型的值。其他类型的可能或可能无法正常工作键(字符串和元组的工作干净,因为他们是不可改变的)。这不是在字典查找一个值抛出一个KeyError异常 - 使用“中”,来检查的关键是在快译通,或者使用dict.get(键)返回值“或”无“,如果不存在,关键是(或(键,未找到)允许你指定要返回的值中未找到的情况下)。

  #建立一个字典空字典{}开始
  ,并存储到字典这样的键/值对
  :#快译通[关键] =价值的,
  关键的dict  = { 
  }快译通'A' ]  =  '阿尔法' 
  快译通'G' ]  =  “伽马” 
  快译通“O” ]  =  '欧米茄' 

  打印快译通   ##{'A':“阿尔法”,“O”:“欧米茄”,“ G':“伽马”} 

  打印快译通[ 'A' ]      #简单的查询,返回的“阿尔法
  “ 快译通[ 'A '  ]  =        6#放入快译通新的键
  /值“  “          
  字典# ## 打印的dict ['Z']#抛出KeyError异常
  ,如果 'Z'  快译通 打印的dict [ 'Z' ]      #避免KeyError异常
  打印快译通得到'Z' )#没有(而不是KeyError异常)  

快译通与键'A'O'“G”

字典上的一个for循环遍历键的默认情况下。键会出现一个任意顺序。明确的键或值的方法dict.keys()和dict.values​​()返回列表。还有一个项目()返回一个元组(键,值),这是最有效的的方式来检查字典中的所有键值数据的列表。所有这些列表可以通过排序()函数。

  #默认情况下,一个快译通迭代遍历键的。
  #请注意,密钥随机顺序。
   打印键
  ##打印前
  
  #究竟一样上面的
  字典(): 打印键

  ##获取的键()的清单:。
  打印快译通()   ##['A','O',' 克'] 

  ##同样,那里的一个值()列表值
  打印快译通()  #[“阿尔法”,“伽马”“欧米茄”] 

  #常见的情况-循环排序顺序键,
  ##访问每个键/值
  关键排序快译通( )):
    打印快译通[ 关键] 
  
  。#项目()(键,值)元组表示快译通
  打印快译通项目()   ##[('A',' 阿尔法'),('O“ ,“欧米茄”)(“G”,“伽马”)] 

  #这个循环的语法访问整个循环的
  dict#以上的项目()元组列表,访问一个(键,值
  )##对每个迭代
  对于 k , V 快译通项目(): 打印k  '>' V 
  #A>阿尔法Ø>欧米茄G>伽玛

有“国际热核实验堆”的变种称为iterkeys(这些方法),itervalues​​()和iteritems()避免构建整个清单的成本 - 性能赢得如果数据是巨大的。不过,我一般喜欢纯键()和values​​()与明智的名称方法。在Python 3000的修订,需要为iterkeys()的变种会消失。

战略说明:从性能的角度来看,字典是你最大的工具之一,你应该使用在那里你可以作为一个简单的方法来组织数据。例如,您可以读取日志文件,其中每行一个IP地址开始,并进入一个关键的IP地址,和值出现的行列表的字典存储数据。一旦你在整个文件中读取,你可以看任何IP地址,并立即看到其行列表。字典在分散的数据,使之成为连贯的东西。

快译通格式

%操作符方便地按名称从字典中的值代入一个字符串:

  哈希=  {} 
  哈希[ '字' ]  =  '加菲猫' 
  哈希[ '计数' ]  =  42 
  小号=  “我希望%(计数)D%副本(字)”  哈希   INT#%d的%1!字符串
  “我想42加菲猫副本”

德尔

“删除”操作符删除。在最简单的情况下,它可以删除一个变量的定义,如果该变量没有被定义。德尔也可以使用列表中的元素或片上删除该列表的一部分,并从字典中删除条目。

  VAR  =  6 
  DEL  VAR   #VAR没有更多
  
  的 = [' '  ,'B '  ,'C '  ,'D ' 
  ] DEL 列表[ 0      ]#删除第一个
  元素DEL 列表[ - 2:   ]#删除最后两个要素
  打印列表       ##['B'] 

  的dict =  { “一个” 1  'B' 2  'C' 3 } 
  DEL 的dict [ 'B' ]    #删除'B'的条目
  打印快译通       # {“一”:1,'C':3}

文件

open()函数打开并返回一个文件句柄,可用于读取或写入文件在通常的方式。代码F =打开(“名”,“R”)打开该文件到变量f,准备读操作,并使用f.close()时完成。'R',而是使用写作'W',和'a'为追加。特殊模式“汝”是“普遍”的文本文件的选项,它的智能转换不同的行结束,所以他们总是通过一个简单的'\ n'来。环的标准文本文件,通过遍历文件中的行(这仅适用于文本文件,二进制文件)。for循环技术是一种简单而有效的方式来看看在文本文件中的所有行:

  #回声文件的内容
  , F = 打开(“foo.txt的 ,“汝
  线在 F    :#遍历文件中的
    打印线    ,#尾随,所以打印不添加结束行字符
                   ##“线”以来,已经包含了最终线
  。 F 关闭( )

读一行一次很好的质量,不是所有的文件需要在内存中,以适应在同一时间 - 方便,如果你想在每行10千兆字节的文件,而不去使用10 GB的内存。f.readlines()方法读取整个文件到内存中,作为其行的列表,并返回其内容。f.read()方法读取整个文件到一个字符串,它可以是一种方便的方法,一次与文字处理,如用正则表达式,我们将在后面看到,。

写作,f.write(String)方法是最简单的方式来写数据到一个开放的输出文件。或者你可以使用一个打开的文件“打印”,但讨厌的语法​​是:“打印>> F,字符串”。在Python 3000中,将固定打印语法=可选的参数:“打印(字符串,文件= F)”文件与普通的函数调用。

文件的Unicode

“编解码器”模块提供支持读取Unicode文件。

进口的编解码器F 

= 编解码器打开“foo.txt的”  “儒”  “UTF - 8” )
f 线
  :#此行是* Unicode的字符串

写作,使用f.write(),因为打印不完全支持Unicode。

运动渐进式发展

构建一个Python程序,不写在一个步骤中的整个事情。相反只是一个确定的第一个里程碑,例如:“良好的第一步是提取的单词列表。” 写的代码来获得这一里程碑,并只打印你的数据结构,在这一点上,然后你可以做一个sys.exit(0),所以程序不运行到其未完成的部分。一旦具有里程碑意义的代码工作,你可以对代码工作的下一个里程碑。看一个国家能够在您的变量打印,可以帮助你觉得你需要如何改变这些变量去下一个状态。Python的这种模式是非常快的,让你作一个小的变化和运行程序,看看它是如何工作的。充分利用建立在小步骤,你的程序,快速周转。

练习:wordcount.py

结合所有基本的Python材料-的字符串,列表,dicts,元组,文件-尝试总结 wordcount.py在行使基本练习 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值