速撸《python学习手册》--第9章-元组、文件及其他

元组

  • 任意对象的有序集合
  • 通过偏移存取
  • 属于不可变序列类型
  • 固定长度、异构、任意嵌套
  • 对象引用的数组

实际应用中的元组

  • 先转变为列表,然后sort()
  • 索引
  • 分片

为什么有了列表还需要元组

元组的概念就来自数据库的一行。元组的角色类似于其他言语中的常数声明,带遍着一种完整性。

元组可以看作是一种简单的对象组合,列表则是随着时间改变的一种数据结构。

元组可以用在列表无法使用的地方,比如字典的key。

文件

文件对象只是常见文件处理任务输出的模块。

  • 'r' 表示输入打开文件
  • 'w' 表示输出生成并打开文件
  • 'a' 表示在文件尾部追加内容而打开文件
  • 'b'表示进行二进制数据处理
  • '+'表示同时输入和输出打开文件

使用文件

  • 最好的读取工具就是文件迭代器
  • 内容是字符串,而不是对象
  • 最好手动close文件,而不是等系统回收
  • 文件时缓冲的并且是可查找的

实际应用中的文件

In [211]: S='Spam'

In [212]: S
Out[212]: 'Spam'

In [213]: X,Y,Z=43,44,45

In [214]: D={'a':1,'b':2}

In [215]: L=[1,2,3]

In [216]: F=open('datafile.txt','w')

In [217]: F.write(S+'\n')
Out[217]: 5

In [218]: F.write('%s,%s,%s\n'%(X,Y,Z))
Out[218]: 9

In [219]: F.write(str(L)+'$'+str(D)+'\n')
Out[219]: 27

In [220]: F.close()

In [221]: chars=open('datafile.txt').read()

In [222]: chars
Out[222]: "Spam\n43,44,45\n[1, 2, 3]${'a': 1, 'b': 2}\n"

In [223]: print(chars)
Spam
43,44,45
[1, 2, 3]${'a': 1, 'b': 2}


In [224]: F=open('datafile.txt')

In [225]: line=F.readline()

In [226]: line
Out[226]: 'Spam\n'

In [228]: line.rstrip()
Out[228]: 'Spam'

In [229]: line=F.readline()

In [230]: line
Out[230]: '43,44,45\n'

In [231]: parts=line.split(',')

In [232]: parts
Out[232]: ['43', '44', '45\n']

In [233]: int(parts[2])
Out[233]: 45

In [234]: numbers=[int(P) for P in parts]

In [235]: numbers
Out[235]: [43, 44, 45]

In [236]: line=F.readline()

In [237]: line
Out[237]: "[1, 2, 3]${'a': 1, 'b': 2}\n"

In [238]: parts=line.split('$')

In [239]: parts
Out[239]: ['[1, 2, 3]', "{'a': 1, 'b': 2}\n"]

In [240]: parts[0]
Out[240]: '[1, 2, 3]'

In [241]: eval(parts[0])
Out[241]: [1, 2, 3]

In [242]: objects=[eval(P) for P in parts]

In [243]: objects
Out[243]: [[1, 2, 3], {'a': 1, 'b': 2}]

使用pickle储存python原生对象

使用struct来存取二进制

文件的上下文管理器

即 with ... as

再看类型分类

  • 对象根据分类来共享操作
  • 只有可变对象(列表、字典和集合)可以原处修改
  • 集合类似一个无值的字典的键。

对象灵活性

  • 列表、字典和元组可以包含任何种类的对象。
  • 列表、字典和元组可以任意嵌套。
  • 列表和字典可以动态地扩大和缩小。

引用和拷贝

赋值操作总是储存对象的引用,而不是这些对象的拷贝。

浅拷贝:只复制了顶层

深拷贝:做了完整的复制

In [244]: import copy

In [245]: copy.deepcopy(S)

比较、相等性和真值

  • “==” 操作符测试值的相等性
  • “is” 表达式测试对象的一致性

python中不通类型的比较方法:

  • 数字比大小
  • 字符串是按照字典顺序,一个接着一个的比较
  • 列表和元组从左到右对每部分的内容进行比较
  • 字典通过排序之后的(键和值)列表进行比较(仅仅python2,python3不能比较)
  • 元组和列表从左到右对每个部分进行比较
  • python3中不允许数字混合类型比较

python中真和假的含义

  • 数字非0都为真
  • 对象非空都为真

None

None 是一个特殊对象,总是假,起到一个空的占位作用。

None不是未定义的意思,因为他有自己的一块内存。

bool类型

可以用bool()来测试一个对象的布尔值。

type对象

类型本身在python中也是对象类型。

可以使用isinstance()来测试类型。

内置类型的陷阱

赋值生成引用,而不是拷贝

重复能够增加层次深度

In [246]: l=[4,5,6]

In [247]: x=l*4

In [250]: y=[l]*4

In [251]: y
Out[251]: [[4, 5, 6], [4, 5, 6], [4, 5, 6], [4, 5, 6]]

In [252]: l[1]=[0]

In [253]: x
Out[253]: [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]

In [254]: y
Out[254]: [[4, [0], 6], [4, [0], 6], [4, [0], 6], [4, [0], 6]]
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容