2010年7月12日星期一

Python学习笔记--TUples,Files

1. Tuples 元组


Tuples其实和List基本一致,都是有序的对象集合,与List不同的是,tuples是immutable的。
Tuples在使用小括号()包围起来的一系列对象。Tuples不支持任何函数
Tuples有如下一些特点:


  • * 任意对象的有序集合

  • * 通过下表offset存取

  • * Immutable

  • * 定长,异质,任意嵌套</li
  • * 对象索引的数组,而不是对象本色




Tuples的一些操作:



T = () #空元组

T = (1, ) # 一个元素的元组,后面要加一个逗号

T = (0, 'Hi', 1.2, 3) # 异质

T = ('ab', ('cd', 'ef')) #嵌套

T[i:j] #slicing

for t in T #迭代

T1 + T2 #连接


由于Tuple不支持任何函数,如果想对Tuple排序,应该怎么做呢?方法如下:


>>> T = ('cc', 'aa', 'dd', 'bb')

>>> tmp = list(T)

>>> tmp.sort( )

>>> tmp

['aa', 'bb', 'cc', 'dd']

>>> T = tuple(tmp)

>>> T

('aa', 'bb', 'cc', 'dd')

这里可以看到使用list()和tuple()函数进行相互转换,值得注意的是,这两个函数都是产生新的对象。


另外,tuple的immutable只是适用于tuple的最上层,如下例子可以说明:



>>> T = (1, [2, 3], 4)

>>> T[1][0] = 'spam' # Works

>>> T

(1, ['spam', 3], 4)

>>> T[1] = 'spam' # Fails

TypeError: object doesn't support item assignment

这里T[1]是一个List,list是mutable的。



2. Files 文件


文件是Python中的特殊的数据对象,此对象关联外部文件,相关函数可以直接对文件进行操作。
File的相关操作如下:


output = open('/dir/filename', 'w')

input = open('data','r') # file may be open as 'w' for write
# 'r' for read or 'a' for append

S = input.read() # 读取文件全部数据到一个字符串中

S = input.read(N) #读取N字节

S = input.readline() #读取下一行,以行结束符号=为标志

L = input.readlines() #读取整个文件到一个字符串的行的列表中

output.write(s) #向文件中写字符串s

output.wirtelines(L) #把列表中L中的所有行写入文件中

output.close() #关闭文件

在Python中,一个对象不再被引用的时候会自动回收内存,在回收file对象的时候,会首先关闭文件。手动close一个文件,虽然不是必须的,但是是一个好的习惯.

没有评论:

发表评论