>>>x = (40) # An Integer
>>>x
40
>>>x = (40,) # A tuple containing an integer
>>>x
(40,)
注意 :Python允许你忽略元组的圆括号,在赋值语句上下文中,即使没有圆括号,Python也能识别出来这是一个元组。
>>>T = ('aa','bb','cc','dd')
>>>sorted(T)
['aa','bb','cc','dd']
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted(iterable, key=None, reverse=False)
- iterable – 可迭代对象。
- key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,
- 指定可迭代对象中的一个元素来进行排序。
- reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回重新排序的列表
index()返回它的参数在元组中的位置
,count()统计元组里某个字符出现的次数。
Python count() 方法用于统计字符串/元组里某个字符出现的次数。可选参数为在字符串/元组搜索的开始与结束位置。
str.count(sub, start= 0,end=len(string))
- sub – 搜索的子字符串
- start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
该方法返回子字符串在字符串中出现的次数。
注意 :元组的不可变性只适用于元组本身顶层而非其内容。
>>>T = (1, [2, 3], 4)
>>>T[1] = 'spam'
TypeError: 'tuple' object does not support item assignment
>>>T[1][0] = 'spam'
>>>T
( (1, ['spam', 3], 4)
使用
nametupled
构建的类的实例所消耗的内存与元组是一致的, 因为字段名都被保存在对应的类里面.
—— 译自 Fluent Python
nametuple
构造函数的首个参数为类名, 第二个参数为字段名信息, 可以是以空格隔开的字符串, 也可以是字符串数组>>>from collections import namedtuple
>>>UserInfo = namedtuple('UserInfo', 'username' 'password' 'block vip')
>>>coding = UserInfo('coding', 'ShowMeTheCode', '0', '1')
>>>coding.password
'ShowMeTheCode'
>>>coding[1]
'ShowMeTheCode'
>>>columns = ['name', 'city', 'email']
>>>Contact = namedtuple('Contact', columns)
>>>contact = ['coding', 'Dongguan', '[email protected]']
>>>coding_contact = Contact(*contact)
>>>coding_contact.city
'Dongguan'
可以用元组进行解包声明, 这里就充分利用了元组的位置信息
contact_desciption = ('Contact', ['name', 'city', 'email', 'phone'])
Contact = namedtuple(*contact_desciption)
文件,常指计算机中由操作系统管理的具有名称的存储区域
这个主要内置对象类型提供了一种可以在Python程序内存存取文件的方式
简而言之,内置函数open可以创建一个Python文件对象作为到计算机上一个文件的链接。在调用open之后,你可以通过返回的文件对象的方法,在程序与相应文件之间来回传递串形式的数据。
file
对象,相关的方法才可以调用它进行读写open(filename, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
在任何情况下,文件的文本在Python程序中都采用字符串形式。读取文件时会返回字符串形式的文本。写入文件时的文本作为字符串被传入write方法
6. 文本迭代器最适合逐行读取
7. 内容是字符串不是对象
8. 文件是被缓冲的以及可定位的
9. close通常是可选的,回收时自动关闭
操作方法 | 含义 |
---|---|
|
读入整个文件内容,返回一个字符串或字节流 |
|
从文件中读入整个文件内容,如果给出参数,读入前size长度的字符串或字节流 |
|
从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串或字节流 |
|
从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行 |
字符串或字节流取决于文件打开模式 | 如果是以文本打开,返回字符串;否则则返回字节流 |
|
向文件写入一个字符串或者字节流 |
|
将一个元素全为字符串的列表写入文件 |
|
改变文件操作指针的位置,offset的值。0——文件开头;1——当前位置;2——文件结尾 |
pickle.dump(obj, file[, protocol])
protocol
是序列化模式,默认值为0,表示以文本的形式序列化。protocol
的值还可以是1或2,表示以二进制的形式序列化。pickle.load(file)
clear_memo()