6.元组


任意对象的有序集合,通过偏移存取,属于不可变序列类型


固定长度,在不生成拷贝的情况下不能改变长度


与列表类似,元组可以看做对象引用的数组


操作上和列表类似,但是不支持方法调用


一个典型的元组例子:


T = (0, 'a', 1.2, ('abc', 'de'))

单个元素的元组


T = (1,)

由于圆括号可以用于把表达式括起来,因此需要加上逗号说明这是一个元组。


在不引起语法冲突的情况下,元组也可以不使用圆括号


T = 1, 2, 3

当然,一直使用圆括号会比较简单,也增加了程序的易读性。


1)转换方法以及不可变性


由于元组的特性,我们需要把它转换成列表并使其成为一个可变对象,才能对它进行排序。或者也可以使用sorted方法,它接受任何序列对象。


T = ('b', 'c', 'd' ,'a')
tmp = list(T)
tmp.sort()
T = tuple(tmp)



sorted(T)

2)为什么有了列表还要元组?


元组的不可变性保证它在程序中不会被另一个引用修改,但列表就不能,类似于C语言中的constant。


元组也可以用在一些列表无法使用的地方,例如字典的键等等


7.文件


内置open函数会创建一个Python文件对象,可以作为计算机上的一个文件链接。调用open后,可以通过调用返回文件对象的方法来读写相关文件。


1)常用文件运算




python存储元组为文本文件 python元组写入文件_打开文件



其中,open(r'C:\spam', 'w')语句中,引号前的r是之前提到过的raw字符串的标志,取消字符串中的转义。


'w'代表为输出生成并打开文件,'r'代表为输入打开文件,'a'代表为在文件尾部追加内容而打开文件


模式字符串尾部加上b可以进行二进制数据处理,加上'+'以为这同时为输入和输出打开文件


写入方法不会添加行终止符,需要自己写入'\n'


2)用pickle存储Python的原生对象


pickle模块能直接在文件中存储几乎任何Python对象,需要import pickle库


例如在文件中存储字典


D = {'a' : 1, 'b' : 2}
F = open('data', 'wb')
import pickle
pickle.dump(D, F)
F.close()


读取时


F = open('data', 'rb')
E = pickle.load(F)