Python小册子-string、list、dict、set

【String字符串基础用法】

字符串常用方法
names = "my name is Lukas Huang."
1find 查找字符的位置,找不到返回-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)

 

posted @ 2021-09-09 12:14  三人行必有我师娘  阅读(117)  评论(0编辑  收藏  举报