Python小册子-string、list、dict、set
【String字符串基础用法】
字符串常用方法 names = "my name is Lukas Huang." 1、find 查找字符的位置,找不到返回-1,跟index类似,index找不到抛出异常 names.find("name") #返回查到的首字符的位置
2、count方法,计数 names.count('a') #统计字符的个数
3、center方法,类似的有ljust和rjust方法 names.center(50,"+") #一共50个字符,不够用+填充
4、endswith方法,判断string是否以结尾 names.endswith("huang.") #返回true或者false
5、string格式化输出 names = "my name is {name}, age is {age}" #格式化输出 names.format(name='lyon',age='23') names.format_map({'name':'Lukas','age':'23'}) #通过dict格式化输出
6、istitle方法,判断string是否是标题(首字母大写) names.istitle()
7、isupper是否全是大写,islower是否全是小写
8、join方法,拼接字符串,和split方法对比 print('+'.join(['1','1','3']))
9、strip去除左右两侧的空格和回车,类似的有lstrip、rstrip去除左右两侧的空格和回车
10、maketrans方法,密码加密 p = str.maketrans("abcdef","123456") #加密规则 "alex li".translate(p) #利用上面的加密规则进行加密
11、replace替换字符串的字符
12、rfind找到匹配最右的字符的index返回
13、split按照指定字符分隔string
14、splitlines按照换行符\n分隔string
15、swapcase把string的大小写互换
【List列表基本用法】
#增 names = ['yui', 'hatano'] names.append("三上悠亚") #往后追加 names.insert(1, "小泽") #插入到特定位置,index是位置索引
names.extend(names2) #合并list,类似dict的update方法 #查(切片) names[0:2] #顾头不顾尾,只能取到names[1],如果index是0,可以省略
names[1:] #从索引1开始取,取到最后,包括最后1个元素
names[:-1] #从头取到最后一个,不包括-1
names[-1] #取最后一个元素
names[:] #取所有元素,这种方式可以实现list的浅copy
##查相关的方法
names.index('yui') #获取元素的index,此方法和string类似
names.count('yui') #统计的元素的个数 因为dict天生去重,所以不存在此方法
#删
names.remove("yui") #比dict多了此方法,其他一致
names.pop() #默认删除最后一个,names.pop(1),指定删除特定下标的元素
del names[0] #del是系统命令
##删相关方法
names.clear() #清空names列表内容,dict也有此方法
#改
names[1] = "boduoyejieyi"
##改相关方法
names.reverse() #反转list,dict天生无序,故无此方法
#其他方法
list的浅copy,只copy第一层,如果有list的嵌套,只copy列表的内存地址
list_new = copy.copy(names);
list_new = names[:];
list_new = list(names);
ps:深copy是copy.deepcopy(names),此方法需要import copy模块
enumerate方法
enumerate(names)方法,把list的值和index放在一起,当成一个元组
names.sort()方法,list内容排序,按照首字符的asc码排序,从小到大
【Dict字典基础用法】
字典的特性 1、dict是无序的 2、ket必须唯一,所以dict天生去重 字典的增删改查 1、增: info = { 'stu1101':'yui hatano', 'stu1102':'boduoyejieyi', } 2、查: print(info["stu1101"]) #如果key不存在,会报keyerror的错,推荐使用get方法 info.get("stu1101") 3、改: info["stu1101"] = "波多野结衣" 4、删: del info["stu1101"] #删除指定元素 #list也可以使用此方法 info.pop("stu1101") #删除指定元素 #list也有此方式,pop里是list的index,类似 info.popitem() #随机删除一个元素 # del info #删除整个字典 字典的方法: 1、get方法 info.get("stu1101") 2、判断key是否在dict里面 'key' in dict #返回结果true或者false 3、字典可以多级嵌套(嵌套里面的数据类型任意) 4、获取dict的所有值(不包括key) info.values ps:同理有info.keys 5、可以给dict设置默认值 info.setdefault("key1","values1") #如果dict里已经有设置的key“key1”则保持不变,如果没有则新增 6、update()方法 b = { 'stu1101':"lyon", 1:2, 3:4, } info.update(b) #把b中新增的更新到info中,如果b中和info中重复的,直接更新value 7、items()方法,把dict转换成一个列表,不会修改原字典 info.items() # 8、fromkeys()方法可以初始化dict (此方法是dict字典对象的方法) c = info.fromkeys([6,7,8],"default values") c = dict.fromkeys([6,7,8],"default values") #注意,此时formkeys方法跟info对象没有任何关系,类似于dict类的一个初始化方法,这里info对象和dict类调用均可以 ps:用fromkey方法创建字典时,如果values值是一个列表,那么列表的存储是共享的(类似列表的浅copy)
【Set集合基础用法】
set1 = set([1,3,8,2,5,3,9,8,10,9,1]) print(type(set1),set1) set2 = set([11,10,8,56,9,1,10,84,95,1923]) print(set2) #交集 print("set1 intersection set2:",set1.intersection(set2)) print(set1 & set2) #可以通过&操作符来求交集 #并集 print("set1 union set2:",set1.union(set2)) print(set1 | set2) #可以通过|操作符来求并集 #差集 print("set1 diffrence set2:",set1.difference(set2)) #作为参数的是少的那个 print("set2 diffrence set1:",set2.difference(set1)) #多的是主动的那个 print(set1 -set2) #相当于set1.difference(set2),同理反过来一样 #子集 father_set = set([1,2,3,4]) sub_set = set([1,3]) test_set = set([1,5]) print("sub_set是否是father_set的子集:",sub_set.issubset(father_set)) print("test_set是否是father_set的子集:",test_set.issubset(father_set)) #父集 print(father_set.issuperset(sub_set)) #对称差集,有叫反向差集 (双方互相都没有,并集-交集) print("set1和set2互相都没有的对称差集:",set1.symmetric_difference(set2)) print(set1 ^ set2) #相当于set1.symmetric_difference(set2),set1 和 set2 位置可以互换 #没有交集 set3 = set([1,2,3]) set4 = set([4,5,6]) print("set3 and set4 是否有没有交集:",set3.isdisjoint(set4)) #基本操作 #添加 set5 = set([11,22,33]) set5.add(88) print("add之后:",set5) #添加进去是无序的 #添加多项 set5.update(['aaa','bbb','ccc']) print("add 多项之后:",set5) #删除remove()可以删除一项,如果不存在会报错 set5.remove("aaa") set5.discard("aaa") #如果不存在,不会报错 #set5.pop() 随机删除一个 print("删除一项后:",set5) #len(s) 计算set的长度 print("set5的长度为:",len(set5)) #x in s 测试x是否是s的成员,(类似的有dict、list) set6 = set([1,2,3]) print("1是否是set6的成员:",1 in set6) list6 = [1,2,3] print('1' not in list6) dict6 = {1:1,'2':2} print('2' not in dict6) #Ps: x not in s 测试x是否不是s的成员,(类似的有dict、list) #copy 浅复制 set7 = set6.copy() print(set7)