1.今日内容大纲
- 基础数据类型集合
2 基础数据类型的补充
2.具体内容
1.基础数据类型集合
-
引子
集合的形式:{},集合存储的是不可变的数据并且是唯一的不重复。但是集合本身是可变的,可变的也成为不可哈希。不可变的数据类型可哈希的。
集合的主要功能:
- 列表去重。
- 关系测试。
-
创建
set1 = {33, 'barry', '冲哥','新闻'} print(set1) set2 = set([33, 22, 77, 55]) print(set2)
-
集合的增删改查
# set1 = {1, 2, [11,22,33]} # set1 = {33, 'barry', '冲哥','新闻'} # print(set1) # # set2 = set([33, 22, 77, 55]) # print(set2) # 空集合 set() {} 空字典 # set1 = {11} # set1.remove(11) # print(set1) # set1 = {33, 'barry', '冲哥','新闻'} # 增 # set1.add('花姐') # print(set1) # update 迭代着增加 # set1.update('abc') # print(set1) # 删 # 按照元素删除 remove # set1.remove('冲哥') # print(set1) # 随机删除 有返回值 # res = set1.pop() # print(res) # print(set1) # clear 清空 # set1.clear() # print(set1) # del删除集合 # del set1 # print(set1) # 改 # set1.remove(33) # set1.add(666) # print(set1) # 查 # for i in set1: # print(i) # 列表去重 # l1 = [11, 11, 22, 22, 33, 33, 44, 44, 55] # set1 = set(l1) # l1 = list(set1) # # print(set1) # print(l1) # 关系测试 set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} # 交集 # print(set1.intersection(set2)) # print(set1 & set2) # 并集 # print(set1.union(set2)) # print(set1 | set2) # 反交集 # print(set1.symmetric_difference(set2)) # print(set1 ^ set2) # 差集 # print(set1.difference(set2)) # print(set1 - set2) # 子集 超集 # set1 = {1,2,3} # set2 = {1,2,3,4,5,6} # print(set1.issubset(set2)) # print(set1 < set2) # # print(set2.issuperset(set1)) # print(set2 > set1) # set1 = {1,2,3} # # 冻集合 # fs = frozenset(set1) # print(fs) # print(set(fs))
2.数据类型的补充
-
字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wb15A3QK-1600680242098)(E:\python+pycharm安装地址\class\2020年9月\0915\day08\image-20200915162350774.png)]
# str # 字符串 s1 = 'barRY AlEN' # 首字母大写其余全小写 # print(s1.capitalize()) # center 居中 可以设置宽度 s2 = 'barry' # print(s2.center(20)) # print(s2.center(20, '*')) # find index # index 找到元素索引,没有则报错 # print(s2.index('r')) # print(s2.index('R')) # print(s2.find('r')) # print(s2.find('R')) # -1 # islower isupper # s3 = 'barry' # print(s3.islower()) # lstrip rstrip # s4 = ' \tbarry ' # print(s4.lstrip()) # rsplit s5 = '小宋|文艺青年|二笔青年|姜正阳' # print(s5.split('|',2)) # print(s5.rsplit('|',1)) # swapcase 大小写反转 # s6 = 'baRRy' # print(s6.swapcase()) # title 特殊字符隔开的每个单词的首字母大写 # s7 = 'barry xiaosong|fuge*chongge' # print(s7.title())
-
元组
tu1 = (11, 22, 33, 33, 55) # print(tu1.count(33)) print(tu1.index(11))
-
列表
# list # l1 = [3, 6, 9, 2, 4, 8, 1] # # # l1.sort() # 升序 # # # l1.sort(reverse=True) # 降序 # # # l1.reverse() # 倒序 # # # count index # # print(l1) # l1 = [11, 22, 33, 44, 55] # 请把索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)。 # 有人说这个还不简单么?我循环列表 # 方法一: # del l1[1::2] # print(l1) # 错误演示 # for index in range(len(l1)): # if index % 2 == 1: # l1.pop(index) # print(l1) # 思维置换 # 将索引为偶数的所有的元素添加到新列表。 # 自己完善。 # 倒序删除 # for index in range(len(l1)-1,-1,-1): # if index % 2 == 1: # l1.pop(index) # print(l1)
对于列表来说,如果循环一个列表时,尽量不要改变列表的大小,否则结果将会有问题。
-
字典
在循环一个字典时,不能改变这个字典的大小,改变就会报错。
# 方法一: # l1 = [] # for key in dic: # if 'k' in key: # l1.append(key) # for key in l1: # dic.pop(key) # print(dic) # 方法二: for key in list(dic.keys()): if 'k' in key: dic.pop(key) print(dic)
if ‘k’ in key:
l1.append(key)
for key in l1:
dic.pop(key)
print(dic)
方法二:
for key in list(dic.keys()):
if ‘k’ in key:
dic.pop(key)
print(dic)