笔记(用Python做些事情)--变量(字典、文件)

  1. 模式Key-Value:dict={‘xiaoming':90,'xiaohaong':80,'xiaomao':60,'xiaoli':54};
  2. 使用构造函数建立字典dict(元组)/dict(a=1,b=2,c=3),zip将两个相同长度的list生成字典dict(zip(listA,listB));  //zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体查看:Python的zip函数
  3. 常用操作:keys,values,get,update,del,clear,嵌套;
    code_dict.update({'php':34254})  //插上新的数据
    code_dict.clear()                //清空字典
  4. 1 code_dict = {'c':123,'shell':3434,'java':7442}
    2 a = code_dict.get('python',None)       //找不到python就返回None
    3 b = code_dict.get('python',’aaaaa‘)    //找不到python就返回aaaaa
  5. 字典:是散列表,没有顺序的数据结构,适合插入,查询操作;(空间换取速度)
  6. 字典:Key不一定是字符串,但一定是不可变对象;
  7. 字典:排序[(k,dict[k]) for k in sorted(dict.keys())]
  8. 字典:sorted(dict.iteritems(), key=lambda d:d[1], reverse=True)
  9. 字典的引用:
    1 L=[4,5,6]
    2 X=L*4      //X=[4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]
    3 Y=[L]*4    //Y=[[4, 5, 6], [4, 5, 6], [4, 5, 6], [4, 5, 6]]
    4 L[1]=0     //L=[4, 0, 6]
    5 print X    //X=[4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]
    6 pirnt Y    //Y=[[4, 0, 6], [4, 0, 6], [4, 0, 6], [4, 0, 6]]
  10. 字典的浅拷贝(字典有嵌套,只拷贝第一层):字典D.copy(), copy.copy(字典D)
  11. 字典的深拷贝(字典有嵌套,完全拷贝):copy.deepcopy(字典D)
  12. 文件的常用操作:F=open(path, 'r')返回对象为file-like object,还可以是内存,网络等,r,w,a
  13. 文件:F.read()读出一个字节或一个单位、F.readline()读出一行、F.write()写入字符串、F.close()关闭文件
  14. 文件对于中文的支持:
    1 //中文支持
    2 import codecs
    3 f=codecs.open(filename, mode, encoding)  //encoding:UTF-8
    4 
    5 //文件操作
    6 import os
    7 os.path.exists(filename)      //判断文件是否存在,返回True或False
    8 os.rename(old, new)           //重命名
  15. 文件Shelve库:
    1 import shelve
    2 
    3 D = shelve.open(file)
    4 D['name'] = 'heibanke'
    5 D.close()

    //只有一个open函数,返回类似字典的对象,可读可写
  16. 文件Pickle/cPickle库:
    1 import cPickle
    2 
    3 f = open(file, mode)
    4 cPickle.dump(obj, f)   //对象obj存到文件f中
    5 obj = cPickle.load(f)  //使用load把它读出来,存在先入先出的关系

    //写:以写的方式打开文件描述符,调用pickle.dump把对象写进去
    //读:以读的方式打开文件描述符,调用pickle.load加载对象
原文地址:https://www.cnblogs.com/xiaoyuandy/p/6005856.html