python数据类型
目录
一、字符串
二、列表
三、元组
四、字典
五、集合
一、字符串
#1.下标 str = 'abc' print(str[0]) print(str[1]) print(str[2]) str1 = '012345678' print(str1[2:5:1])#开始:结束:步长 print(str1[-1:-10:-1])#步长为负,倒叙选取,-1表示最后一个数据 #2.查找find mystr = 'hello world and itcast and itheima and Python' print(mystr.find('and')) pint(mystr.find('and',15,30))#范围查找,开始下标,结束下标 print(mystr.find('ands'))#没有结果返回-1 #index print(mystr.index('and')) print(mystr.index('and',15,30))#范围查找,开始下标,结束下标 #print(mystr.index('ands'))#没有则报错 #count print(mystr.count('and')) print(mystr.count('and',15,30))#范围查找,开始下标,结束下标 print(mystr.count('ands'))#没有则报错 #rfind 从右侧开始查找 #rindex 从右侧开始查找 #3.替换replace new_str = mystr.replace('and' ,'he', 2)#替换次数超出子串出现次数,表示替换所有子串 print(new_str) #4.分割split,返回一个列表,丢失分隔字符 list1 = mystr.split('and',2) print(list1) #4.合并join 合并列表里面的字符串为一个大字符串 mylist = ['aa','bb','cc'] new_str = '#'.join(mylist) print(new_str) #5.大小写转换 #capitalize():字符串首字母大写 #title():字符串每个单词首字母大写 #upper():字符串转大写 #lower():字符串转小写 #swapcase():字符串大小写转换 #6.删除空白字符 #lstrip():删除左侧空白 #rstrip():删除右侧空白 #strip():删除两侧空白 #7.字符串对齐 #ljust():返回一个字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串 #rjust():右对齐 #center():中间对齐 mystr = 'hello' print(mystr.ljust(10,'.')) print(mystr.rjust(10,'.')) print(mystr.center(10,'.')) #8.判断真假 #startswith():判断字符串是否以某个子串开头 mystr = 'hello world and itcast and itheima and Python' print(mystr.startswith('hell')) #endswith():判断字符串是否以子串结尾 #isalpha():判断字符串是否以字母组成 #isdigit():判断字符串是否均为数字 #isalnum():判断是否数字或字母组合 #isspace():判断是否为空格 #isupper():判断是否为大写 #islower():判断是否为小写
二、列表List
#列表list,可变类型 name_list = ['Tom','Lily','Rose'] print(name_list[0]) print(name_list.index('Tom')) print(name_list.count('Tom')) print(len(name_list[0])) print('Tom' in name_list) print('Toms' in name_list) print('Tom' not in name_list) #append,列表结尾追加数据,如果数据是一个序列则将这个序列整体追加到结尾 name_list.append([11,22]) name_list.append('wuchen') print(name_list) #extend,列表结尾追加数据,如果数据是一个序列则将这个序列数据逐一添加到列表 name_list.extend('wuchen') print(name_list) name_list.extend(['xiaoming','xiaohong']) print(name_list) #insert(下标,数据) name_list = ['Tom','Lily','Rose'] name_list.insert(1,'aaa') #print(name_list) #index('Tom') 查找Tom值的下标 Print(name_list.index('Tom')) #del()删除列表或列表下标 name_list = ['Tom','Lily','Rose'] del name_list[0] #print(name_list) del name_list #print(name_list) #pop()删除指定下标数据,如果不指定则删除最后一个数据,并返回删除的数据 name_list = ['Tom1','Lily1','Rose1'] del_name = name_list.pop() print(del_name) print(name_list) #remove()删除数据(第一个匹配到的数据) name_list = ['Tom','Lily','Rose'] name_list.remove('Tom') print(name_list) #clear()清空列表 name_list = ['Tom','Lily','Rose'] name_list.clear() print(name_list) #修改指定下标的数据 name_list = ['Tom','Lily','Rose'] name_list[0] = 'aaa' print(name_list) #reverse()逆序 name_list = [1,3,2,4,5,6] name_list.reverse() print(name_list) #sort()排序 name_list = [1,3,2,4,5,6] name_list.sort() name_list.sort(reverse=False) name_list.sort(reverse=True) print(name_list)
#返回排序后的列表(reverse默认为False): list3 = sorted(list, reverse=True) #copy()复制 name_list = ['Tom','Lily','Rose'] list1 = name_list.copy() print(list1) print(name_list) #遍历 name_list = ['Tom','Lily','Rose'] i = 0 while i < len(name_list): print(name_list[i]) i += 1 #(for更优) for i in name_list: print(i) #列表嵌套 name_list = ['Tom','Lily','Rose',['张三',['李四','ss'],'王二'],['xiaoming','xiaohong','wanggang']] print(name_list[3][1][1]) #案例:随机分配老师到办公室 import random teachers = ['A','B','C','D','E','F','G','H'] offices = [[],[],[]] i = 1 for name in teachers: num = random.randint(0,2) offices[num].append(name) for office in offices: print(f'办公室{i}的人数是{len(office)},老师分别是:') for name in office: print(name,end=' ') print() i += 1
三、元组Tuple
#元组tuple,不可变类型 t1 = (10,20,30) print(type(t1)) t2 = (10,)#单个数据必须加逗号 print(type(t2)) t3 = (10) print(type(t3))#数据类型是int
#仅支持查找操作 print(t1[0]) print(t1.index(10)) print(t1.count(10)) print(len(t1)) #如果元组里有列表,则列表的数据是可以修改的 t1 = ('aa','bb','cc','dd',['ww','yy']) t1[4].append('11') print(t1)
四、字典Dict
# 字典dict,键值对,可变类型 dict1 = {'name':'Tom','age':21,'gender':'男'} dict2 = {} dict3 = dict() print(type(dict1)) print(type(dict2)) print(type(dict3)) # 新增 dict1['id'] = 110 print(dict1) # 修改 dict1['name'] = 'Rose' print(dict1) # 删除 del dict1['name'] #del(dict1) print(dict1) # 查找 # get(key,默认值) dict1 = {'name':'Tom','age':21,'gender':'男'} print(dict1.get('name')) print(dict1.get('id',110)) print(dict1.get('id')) # keys() 查找所有key print(dict1.keys()) # values 查找值 print(dict1.values()) # items() 查找键值对,返回元组 print(dict1.items()) #遍历 dict1 = {'name':'Tom','age':21,'gender':'男'} for key in dict1.keys(): print(key) for value in dict1.values(): print(value)
五、集合Set
# 集合set,可变类型,不重复的数据,没有顺序,不支持下标 s1 = {10,20,30} print(type(s1)) print(s1) s2 = {10,20,30,40,50,20,10} print(type(s2)) print(s2) s3 = set('abcdefg') print(s3) # 创建空集合只能用set() s4 = set() print(s4) # 添加数据add(),单一数据,不能追加列表 s1.add(100) print(s1) # 添加数据update(),可以追加数据序列 s1.update([10,20,30,40,50,60]) print(s1) # remove()删除指定数据,数据不存在报错 s1.remove(100) print(s1) # discard()删除指定数据,数据不存在不报错 s1.discard(10) print(s1) # pop()随机删除某个数据,并返回这个数据 print(s1.pop()) print(s1) # 查找数据 in/not in print(10 in s1) print(10 not in s1) # 运算 a-b : a有b没有 a|b:ab并集 a&b:ab交集 a^b:ab交集之外的集合