数据类型总结

数据类型总结:

三大要素:
1,id(地址)
2,type(类型)
3,value(值)

可变类型:列表,字典,集合
共性:
1,增加
2,删除obj.pop() obj.clear()
3,修改(列表、字典可以)
4,查找(列表、字典可以)
不可变类型(可hash类型):数字(整形,浮点类型),字符串,元祖,布尔类型
无论可变数据类型与不可变数据类型,其变量名的id都不会改变,可以用len(obj)的变量也都可以进行遍历(可遍历)取值。

序列类型(有索引):字符串,列表,元祖(都有obj.index()方法,可以返回索引)
通用方法:
1,obj.index()
2,遍历for i in obj:
3,判断元素是否在value in obj
4,切片[a:b:c]
5,解压a,*_,b=obj
6,都有长度,即len(obj)
7,取值:
(1),整体取值:直接打印变量名(引用)即可
(2),局部取值:
a,根据索引进行取值
b,遍历变量进行取值(用while,for进行遍历)
c,切片取值[a,b,c](a,开头;b,末尾;c,步长;注意遵循左必右开的原则)
d,解压缩的方式(a,*_,b='hello python';*_可以理解为通配符(可以进行适当的匹配))
非序列类型(无索引):数字,布尔类型,字典,集合

变量的操作:对变量进行操作的时候,如果是可变类型则操作的是该变量本身,比如修改操作(其id,value会发生变化);
如果是不可变数据类型则不能对此变量本身进行修改操作,注意点:元祖和字典的key的操作。

整形:整数(int)

浮点类型:小数(float)

布尔类型(boolean):False(0),True(1)

字符串(str):
注意:字符串为不可变数据类型,故对字符串本身不能进行修改操作,但可以通过调用其方法来获取其返回值(可以是字符串、数字、列表等任意数据类型)
组成:由' '双引号、" "、双引号、''' '''三引号及其引号内部的元素(可以是任意数据类型)共同构成。
取值:
1,整体取值:直接打印变量名(引用)即可
2,局部取值:
a,根据索引进行取值
b,遍历集合进行取值(用while,for进行遍历)
c,切片取值[a,b,c](a,开头;b,末尾;c,步长;注意遵循左必右开的原则)
d,解压缩的方式(a,*_,b='hello python';*_可以理解为通配符(可以进行适当的匹配))
拼接:
1, str3 = str1 + str2(比较常见)
2, str3 = str1.join(str2)(应用场景较少)
3, str2 = str1*3(有应用)
格式化输出:
1,format方法
res = 'name:{},age:{},sex:{}'
res.format('egon',18,'male')

res = 'name:{1},age:{0},sex:{0}'
res.format('egon',18,'male')

res = 'name:{},age:{},sex:{}'
res.format(name='egon',age=18,sex='male')
2,用+进行连接
3,%s,%d等
表判断的:
1,判断是否为数字str.isdigit()
2,判断是否为空str.isspace()
3,以' '结尾str.endswith(' ')
4,以' '为开头str.startswith(' ')
查找:
1,str.find()
2,str.index()
3,str.count()
替换:
str.replace(old,new)
应用场景:文件操作(文件中新旧的替换)f2.write(line.replace(old,new))
切割:
str.split('')可以指定字符去切割(切割返回的是列表)
删除空字符:
str.stript()删除开头末尾空字符
大写小写化:
1,str.upper()
2,str.lower()
列表(list):
注意:由于列表是可变类型,所以可以对其进行修改操作(操作对象是其本身)
组成:由一对中括号[]及其中的元素组成,内部元素无要求,可以是任意类型数据。
值的获取:
1,整体取值:直接打印变量名(引用)即可
2,局部取值:
a,根据索引进行取值
b,遍历集合进行取值(用while,for进行遍历)
c,切片取值[a,b,c](a,开头;b,末尾;c,步长;注意遵循左必右开的原则)
d,解压缩的方式(a,*_,b='hello python';*_可以理解为通配符(可以进行适当的匹配))
添加元素:
1,obj.insert()可以指定索引进行添加
2,obj.extend()默认添加到末尾
3,obj.append()有多个元素的变量拆散添加到末尾
删除元素:
1,del obj[index]
2,obj.remove()指定元素
3,obj.pop()指定索引,默认从末尾开始移除
4,obj.clear()
修改元素:
obj[index]=new_value
查询元素:
1,obj.index(value)
2,obj.count(value)数数,看列表中有几个这样的元素
排序:
obj.sort(reverse=True)
反转:
obj.reverse()
元祖(tuple):
注意:参考字符串
组成:元祖由一对小括号()及其中的元素组成,元素可以是任意数据类型。
值的获取:参考字符串
查找元素:
查询元素:
1,obj.index(value)
2,obj.count(value)数数,看列表中有几个这样的元素
字典(dict):
注意:参考列表
组成:字典的组成结构为{key:value,key1:value1.........,key_n:value_n},其key只能是不可变数据类型(字符串、布尔、数字、元祖),value可以是任意数据类型。
值得获取:
1,整体取值:直接打印变量名(引用)即可
2,局部取值:
a,obj.items()用v,k接受
b,obj.values()所有值
c,obj.keys()所有的键
d,可以直接遍历obj,接收的元素为key,然后通过obj[key]就可以获取value了
e,可以通过解压缩的方式来获取key,进而获取value
通过以上方法再附加上for进行遍历即可得到每一个key和value值
添加元素:
obj[new_key]=new_value
删除元素:
1,del obj[key]
2,obj.pop(key),如果参数为空则默认从最后一个删除
3,obj.clear()清空
修改元素:
obj[key]=new_value
查找元素:
obj.get(key)
集合(set):
注意:参考列表,集合可以自动去重,在一定的范围之内可以自动排序
组成:集合由两个大括号{}及其中的元素组成,元素可以是任意数据类型
列表方法:
1,求交集 &与 obj1 = obj.intersection(obj2)
2,求并集 |或 obj1 = obj.union(obj2)
3,求差集 -减 obj1 = obj.difference(obj2)
4,求对称差集 ^异或 obj1=obj.symmetric_difference(obj2)
添加:
obj.add(value)
删除:
obj.remove(value)
obj.pop()(不传入参数)
obj.clear()清空















原文地址:https://www.cnblogs.com/caoxing2017/p/7275714.html