python笔记之元组、列表、字典和文件

1. 元组-tuple
元组是以圆括号()包围的数据集合,不同元素以逗号隔开,元组中的数据一旦确定下来就不能修改。
元组和字符串相似,同样有索引和分片,元组中每个元素可以是任何类型的数据。
len(T) 返回元组的长度,即元素的个数。
T1+T2  返回T1+T2组成的新元组。
T*3  重复3次后生成的新元组。
T.count(value) 返回元组中value的个数。
T.index(value, [start, [stop]]) 返回start到stop(不含stop)中,value的索引。

2. 列表-list
列表是用方括号[]包围的数据集合,不同成员以逗号分开,列表可以包含任何类型的对象,与字符串和元组不同,列表是可变的。
索引、分片、获取长度、合并+、重复*都与元组相同,下面主要说说列表特有的东西。
L[m] = n 位置m的元素赋值为n。
L[m:n] = [xxx,...]  分片赋值。
L.count(value) 返回value的个数。
L.index(value, [start, [stop]])  返回第一个value的index,若没找到抛出异常。
L.append(object) 插入对象object到列表末端。
L.extend(iterable) 将iterable中的元素插入到列表末端。
L.insert(index, object) 在index前面插入 object。
L.pop() 弹出最后一个元素,即从列表删除并返回最后一个元素。
L.remove(value) 删除列表中第一个value,若无value抛出异常。
del L[x[:y[:z]]] 从x开始每隔z个删除掉对应的元素直到y之前。
L.sort() 对列表L进行排序,会影响L的结构。也可以使用内置函数sorted(L),这个函数不会影响L本身,会将排序的结果返回到一个新的列表。
L.reverse() 反转列表L。内置函数reversed(L)也可以实现,但是返回的是一个迭代器,所以必须包装在一个list的调用中——list(reversed(L)),不影响L本身的结构。

3. 字典-dict
字典是python中一种比较特殊的数据类型,是以大括号{}包围起来的数据集合,字典中的成员是以“key:value”的格式来声明。字典是无序的,是通过键来访问对应的值。
len(D)  字典的长度,其实就是字典keys列表的长度。
del D[key] 删除key以及其对应的value。
D.[key] = value  修改/赋值。
D.keys()  返回所有键的列表。
D.iterkeys() 返回键的迭代器。
D.values()  返回所有值的列表。
D.itervalues() 返回值的迭代器。
D.items()   返回[(keys), (values)],键和值两个元组组成的列表。
D.iteritems() 返回(key, value)的迭代器。
D.copy()  拷贝字典,创建D的副本。
D.clear() 删除字典的所有元素。
D.get(k[,d])  返回键k对应的值,若k不存在,则返回d,默认为None。
D.setdefault()  返回键k对应的值,若k不存在,向字典 中插入这个键,并且以default为这个键的值,并返回 default,default的默认值为None。
D.has_key(k)  D的键中是否有k, 有返回True,没有False,和 k in D.keys()功能相同。
D.update(D1)  将D1的内容增加到D中。
 D.pop(k[,d])  移除键k并且返回k对应的值,若k不在键列表中,返回d,如果d没有指定,抛出异常KeyError。
 D.popitem()  得到一对键值并从字典中删除它。

3.0中取消了D.has_key(k),以后用in来操作,而且D.keys() 、D.values()和D.items() 返回的都是可迭代对象,不是列表,所以D.iterkeys() 、D.itervalues()和D.iteritems() 就没有存在的必要了。

4. 文件-file
1) 创建/打开
python中创建文件对象使用的是内置的open()函数,此函数根据参数给定的文件名和对应的模式打开文件并返回文件对象。
fd = open("/local/test","r")  只读方式打开/local目录下的test文件。
读写模式:
r  只读模式打开,文件必须存在。
r+   读写模式打开,文件必须存在。
w  写模式打开,有则清空,没有则新建
w+  读写模式打开,有则清空,没有则新建
a  追加模式打开,写文件总是写到文件末尾,seek也不能改变,不可读,文件不存在则新建。
a+  可读写的追加模式打开,就是比a多了读的权限。
b  二进制模式打开

r+和w+的区别在于r+要打开的文件必须存在,否则报错,w+文件存在的话会清空其内容,不存在的话会新建。
r+和a+的区别在于a+只能写到文件尾,r+可以写到任何位置。
w+和a+的区别在于文件存在的时候w+会清空,写入的时候可以指定位置,当然刚开始清空状态下指定位置是没用的,都是从0位置开始写入;而a+则是往文件尾追加。

2) 操作
fd.read([n])  将整个文件读入到一个字符串中,指定n时读取之后的n的字节。
fd.readline()  读取当前行到一个字符串。
fd.readlines()  读取整个文件到字符串列表,每行为列表的一个元素。
fd.write(s)  将字符串s写入文件中。
fd.writelines(list) 把列表中的文件写入文件中。
fd.tell()  返回当前的读/写位置。

fd.seek(offset[, whence])  设置当前读写指针的位置, offset为正向后偏移,为负向前偏移,whence默认为0。

      whence = 0: 从文件头偏移offset

      whence = 1: 从当前文件偏移offset

      whence = 2: 从文件末尾偏移offset

fd.flush()  把输出缓冲区中的内容写入硬盘,不关闭文件。

fd.close()  关闭文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值