代码改变世界

Python基础二

2019-05-20 22:25  gangzi4321  阅读(196)  评论(0编辑  收藏  举报

一 、列表 list、元组操作

  a. 列表的操作 (通过下标访问列表中的元素,下标从0开始计数)

    list_test = [1,2,3]

    1. 增加:list_test.append(4)---> 结果:[1,2,3,4];

    2. 删除:list_test.pop(2) / list_test.remove(3) / del list_test[2] --->结果:[1,2];

    3. 修改:list_test[0] = 5--->结果:[5,2,3];

    4. 查看:x = list_test[1] --->结果:x = 2; y = list_test.index(2)--->结果:y = 1; 

    5. 插入:list_test.insert(1,7)--->结果:[1,7,2,3]

    6. 反转:list_test.reverse()--->结果:[3,2,1]

    7. 切片:list_test [0:2]--->结果:[1,2]  # 取下标0至下标2之间的数字,包括0,不包括2;

    8. 扩展:list_test1 = ['gang','zi'] --> list_test.extend(list_test1)-->list_test = [1,2,3,'gang','zi'] 

    9. 浅cope(直接量复制的是值,引用复制的是地址):(1).import copy  list_test1 = copy.copy(list_test) (2). list_test2 = list_test[:] (3).list_test3 = list(list_test);

    10. 按步长操作:list_test[::2]--->结果[1,3];

    11. 统计:z = list_test.count(2)--->结果:z = 1;

    12. 排序: list_test.sort(); # 3.0里不同数据类型不能放在一起排序;

    13. 获取下标:list_test.index(2)---> 1 # 只返回找到的第一个下标;

  b. 元组是特殊的列表,只可以查看不可修改,又称为只读列表。

二、字符串操作 (不可修改)

  str_test = "i have a dream" --->

  1. 拼接:print('-'.join(["1","2","3"])) --->结果:1-2-3 <class 'str'>;

  2. 句子首字母大写:str_test.capitalize()--->结果:"I have a dream";

  3. 统计字符在整句中出现的次数:str_test.count('a')--->结果:3 ;

  4. 居中填补指定符号:str_test.center(20,'-')--->结果:---i have a dream---;

  5. 判断是否依指定字符结尾:str_test.endwith('am')--->结果:True;

  6. 返回指定字符在句子中的开始下标:str_test.find('have')--->结果:2 ;

  7. 句子中参数替换:str_test = "i {name} have a {some} dream" --->str_test.format(name="gangzi",some="big")) / name.format_map( {'name':'gangzi','some':'big'} )

  8. 判断是否是数字:'a123-'.isalnum()--->False;

  9. 判断是否是字母:'ab'.isalpha()--->True;

  10. 判断是否是整数:'10'.isdecimal()---->True;

  11. 判断是否是整数(常用):'10'.isdigit()--->True;

  12. 判断是不是一个合法的标识符:print('aa1'.isidentifier()) --->True # (是否符合变量名规则);

  13. 是否为数值格式'33.0'.isnumeric()--->False;

  14. 检查是否为标题格式:str_test.istitle()--->False;

  15. 检查是否是可打印文件:print(str_test.isprintable())--->True  # tty file,drive file;

  16. 检查是否大写:str_test.isupper()--->False;

  17. 指定字符补充:print(str_test.ljust(30,'-'))--->i {name} have a {some} dream--; # 同理 str_test.rjust(30,'-');

  18. 小写转换:str_test.lower()--->i {name} have a {some} dream;

  19. 大写转换:str_test.upper()--->I {NAME} HAVE A {SOME} DREAM;

  20. 截空:str_test.lstrip() / str_test.rstrip() / str_test.strip()

  21. 匹配替换(转译):p = str.maketrans('abcdefg','1234567')--->print(str_test.translate(p))--->结果:i {n1m5} h1v5 1 {som5} 4r51m;

  22. 转换字符:print(str_test.replace('n','N',1))--->结果:i {Name} have a {some} dream;

  23. 从右侧开始查找:print(str_test.rfind('n'))---->结果:3 ;

  24. 按/t分:print(str_test.split('\t'))--->['i {name} have a {some} dream'] <class 'list'>;

  25. 按行分:print(str_test.splitlines())--->['i {name} have a {some} dream'] <class 'list'>;

  26. 大小写转换:str_test.swapcase()--->I {NAME} HAVE A {SOME} DREAM;

  27. 标题格式-单词首字母大写:str_test.title()--->I {Name} Have A {Some} Dream;

  28. 左补充0:str_test.zfill(30)--->00i {name} have a {some} dream;

三、字典操作 (dict是无序的,key必须唯一)

  1. 单个增: dict_test.setdefault(k,v) # 如果字典中有与k同名的键值对,则不做任何修改否则增加;

  2. 多个增:dict_test.update(dict_test1) # 将字典dict_test1中的键值对添加到字典dict_test中,同名k做修改操作;

  3. 修改:dict_test['v'] = new_v;

  4. 删除一个:dict_test.pop('v'); 或者 del dict_test['v'];

  5. 随机删一个:dict_test.popitem();

  6. 高效遍历:for k in dict_test: print(k,dict_test[k]);

  7. 低效遍历:for k,v in dict_test.items: print(k,v); # 因为需要先将字典转换为列表;

  8. 列表创建字典 举例:dict_test = dict.fromkeys([1,2,3],['name','age','sex']) ---> dict_test = {1:['name','age','sex'], 2: ['name','age','sex'], 3: ['name','age','sex']}; # 注意这里是浅cope。

四、集合操作 (一个无序的,不重复的数据组合)

  1. 把一个列表变成集合,就自动去重了:set_test = set([1,1,2,3])--->set_test = {1,2,3};

  2. 并集union:| ;

  3. 交集intersection:& ;

  4. 差集difference:- ;

  5. 对称差集symmetric_difference:^ ;

  6. 添加一项:set_test.add('x);

  7. 添加多项:set_test.update(['x','y']);

  8. 删除一项:set_test.remove('x');

  9. set的长度: len(set_test);

  10. 判断x是否为set_test的成员:x in set_test  ; # x is not in set_test ;

  11. 判断是否是子集:set_test1.issubset(set_test) 或者 set_test1 <= set_test # set_test1是否为set_test的子集;

  12. 判断是否是父集:set_test.siuperset(set_test) 或者 set_test >= set_test1 # set_test是否为set_test1的父集;

  13. 复制:set_test1 = set_test.copy() # 浅复制。

五、文件操作

  1. 获得文件句柄:f = open('file_name','w',encoding='utf-8') # 文件打开模式w/r/a/w+/r+/a+/rU/rb/wb/ab/;

  2. 文件读取:f.read() / f.readline();

  3. 文件写入:write();

  4. with语句:with open() as f:……。

六、字符编码与转码 

  1. Python2默认编码是ASCII,Python3默认编码是Unicode;

  2. unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(英文1字节,汉字3字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf-8省空间;

  3. 在Python3中:decode,在解码会把string 变成bytes类型,encode编码会把bytes变回string。