Day01,Python数据类型及常见操作
一、标准数据类型
1、Number(数字)
int(整数):-1,1
bool(布尔类型):True,False
float(浮点类型):1.13,3E-2
complex(复数):1+2j,1.1+2.2j
2、String(字符串):“Hello World!”
3、List(列表):[1, 2, 3],[‘a’, ‘b’, ‘c’]
4、Tuple(元组):(1, 2, 3)
5、Set(集合):set([1, 2, 3])
6、Dictionary(字典):{‘name’: ‘Tom’, ‘age’:22}
注:不可变数据类型:Number,String,Tuple;可变数据类型:List,Dictionary,Set
二、字符串常见操作
1、数据类型转换
str():将括号内的数据类型转换成字符串
2、切片、逆序
demo[0:5]:截取字符串下标0到5之间的字符串
demo[0:5:2]:截取字符串下标0-5之间每隔2个字符组成的字符串
demo[::-1]:将字符串逆序
注:下标若为负数代表从字符串右边开始计数
3、字符串常见方法
str1.find(str2, start=None, end=None):在str1中查找字符串str2,返回查找的第一个str2的下标,若找不到则返回-1
str1.rfind(str2, start=None, end=None):从字符串str1右边开始查找
str1.index(str2, start=None, end=None):类似find()函数,不同的是若找不到则抛出ValueError异常
str1.rindex(str2, start=None, end=None):类似rindex()函数
str1.count(str2, start=None, end=None):统计str2在str1出现的次数
str1.replace(str2, str3, count):将str1中的str2替换成str3,若指定count,则只替换count次,原变量str1不变,返回新的变量
str1.split(sep=None, maxsplit=-1):以str2为分割符分割str1,返回一个数组,默认以空格作为分割符,若指定maxsplit,则只分割maxsplit次
str1.capitalize():字符串第一字母大写
str1.title():字符串中每个单词首字母大写
str1.startswith(str2):判断字符串str1是否以字符串str2开始
str1.endswith(str2):判断字符串str1是否以字符串str2结束
str1.lower():将字符串中字母转换成小写
str1.upper():将字符串中字母转换成大写
str1.rjust(width, fillchar=None):返回一个新字符串右对齐,并使用fillchar填充至width的新字符串,默认填充符是空格
str1.center(width, fillchar=None):返回一个新字符串居中对齐,并使用fillchar填充至width的新字符串
str1.ljust(width, fillchar=None):返回一个新字符串左对齐,并使用fillchar填充至width的新字符串
str1.lstrip(chars=None):默认去除字符串左边的空格,若指定chars,则去除所有指定字符
str1.rstrip(chars=None):默认去除字符串左边的空格
str1.strip(chars=None):默认去除字符串两边的空格
str1.partition(str2):查找str1中的第一个str2,并以此为分割符,返回分割后的两个字符串与分割符组成的元组,split函数返回的是列表
str1.splitlines(keepends=None):以换行符分隔,返回一个列表,keepends参数是个布尔值,表示是否保留换行符到结果中
str1.join(list1):将str1作为分隔符与列表中各值组成新的字符串
str1.expandtabs(tabsize=8):将字符串中制表符转换成空格,默认是8个空格
str1.isalpha():判断是否是字母组成的字符串
str1.isalnum():判断是否是由字母和数字组成的字符串
str1.isspace():判断是否是空白字符组成的字符串,例\t、\n、\r
str1.isidentifier():判断是否符合标准变量命名规范
str1.isdecimal(),str1.isdigit(),str1.isnumeric()三个函数的区别:
4、字符串格式化输出
1#方式一2info="""3infoof%s4name:%s5age:%s6job:%s7salary:%s8"""%(name,name,age,job,salary)910#方式二11info2="""12infoof{_name}13name:{_name}14age:{_age}15job:{_job}16salary:{_salary}17""".format(_name=name,18_age=age,19_job=job,20_salary=salary)2122#方式三23info3="""24infoof{0}25name:{0}26age:{1}27job:{2}28salary:{3}29""".format(name,age,job,salary)
三、数据运算
1、算数运算
+加-减*乘/除%取模,返回除法的余数**幂//返回商的整数部分
2、比较运算
==等于,比较对象是否相等!=,<>不等于,比较对象是否不相等>大于<小于>=大于等于<=小于等于
3、赋值运算
=简单的赋值运算符+=c+=a等效于c=c+a-=c-=a等效于c=c-a*=c*=a等效于c=c*a/=c/=a等效于c=c/a%=c%=a等效于c=c%a**=c**=a等效于c=c**a//=c//=a等效于c=c//a
4、逻辑运算
and布尔“与”or布尔“或”not布尔“非”
5、成员运算
in如果在指定的序列中找到值返回True,否则返回Falsenotin如果在指定的序列中没有找到值返回True,否则返回False
6、身份运算
is判断两个标识符是不是引用自一个对象isnot判断两个标识符是不是引用自不同对象
7、位运算
&按位与运算|按位或运算^按位异或~按位取反<<左移动>>右移动
8、运算优先级
四、列表常见操作
1、增加
list1.append():在列表尾部添加
list1.insert(index, obj):在指定下标添加obj元素
list1.extend(list2):将列表list2的所有值添加到list1
list1+list2:列表list1与list2组成新的列表返回
2、删除
list1.pop():删除列表最后的值,返回删除的值
list1.remove(obj):删除列表中指定的内容
del list1[index]:删除列表中指定下标的内容
3、修改
list1[index]=obj:修改列表中指定下标的内容
4、查找
list1.index(obj):返回查找的内容的下标,若找不到则抛出ValueError异常
list1.count(obj):统计查找内容出现的次数
if obj in list1:判断obj是否在列表中
if obj not in list1:判断obj是否不在列表中
5、排序
list1.sort(reverse=False):列表排序,默认升序,列表变量会被永久修改,若reverse=True则降序
sorted(list1, reverse=False):返回排序的新列表,原列表数据不变,若reverse=True则降序
list1.reverse():列表顺序翻转
6、统计计算
min(list1):返回列表中最小值
max(list1):返回列表中最大值
sum(list1):返回列表中所有值的和
7、列表解析
8、复制列表
list1与list3是相同的内存空间,list2是全新的
浅复制与深复制的区别:
1names=["tom","jerry",["alex","jordan"],"marry","jack"]2names2=names.copy()#copy浅复制,只复制第一层,第二层内容不会复制3print(names,names2)4names[0]="dog"5names2[2][0]="cat"6print(names,names2)7#----------------------------------------8importcopy9n1=["tom","jerry",["alex","jordan"],"marry","jack"]10n2=copy.deepcopy(n1)#deepcopy深复制,完全复制内存内容11print(n1,n2)12n1[0]="dog"13n2[2][0]="cat"14print(n1,n2)1516#浅copy的三种方式17person=["jack",["男",25]]18#119p1=copy.copy(person)20#221p2=person[:]22#323p3=list(person)
五、元组
元组又叫只读列表,一旦创建,便不能再修改,它只有两个方法,一个count,一个index。
语法
names=("tom","jack","eric")
六、字典常见操作
1、增删改查
dict1=[]dict1['name']='Tom'#增加deldict1['name']#删除dict1['name']='Jerry'#修改dict1.get('name')#查找
2、其它方法
dict1.keys():返回字典中所有key组成的列表dict1.values():返回字典中所有vlaue组成的列表forkey,valueindict1.items():循环打印dict1.update(dict2):将字典dict2中的内容更新到字典dict1,若key相同则更新value,不同则添加键值对dict.fromkeys([key1,key2,key3…],value):初始化一个字典
七、集合常见操作
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以在set中,没有重复的key。
set1.add(obj):添加元素
set1.pop():任意删除集合中的一个值,返回该值
set1.remove(obj):删除元素,若值 不存在会报错
set1.discard(obj):删除元素,若值不存在也不会报错
集合之间的运算
1s1=set([1,2,3])2s2=set([2,4,5])3#交集4print(s1&s2)5print(s1.intersection(s2))6#并集7print(s1.union(s2))8print(s1|s2)9#差集inset1butnotinset210print(s1-s2)11print(s1.difference(s2))12#子集13s3=set([1,2,3])14s4=set([1,2])15print(s4.issubset(s3))16#父集17print(s3.issuperset(s4))18#对称差集把相同的去掉组成新的集合19print(s1.symmetric_difference(s2))20print(s1^s2)21s5=set([4,5])22#判断两个集合是否有交集,有即返回false23print(s3.isdisjoint(s5))
八、补充
1、dict与list的比较
dict有以下特点:
查找和插入的速度极快,不会随着key的增加而变慢
需要占用大量的内存,内存浪费多
而list相反:
查找和插入的时间随着元素的增加增加
占用空间小,浪费内存很少
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。