一、python基本数据类型:python3有6个标准的数据类型(区别于数字类型):
1、Number(数字):
a、当你指定一个值的时候,Number对象就会被创建,如var1 = 1。另外,一个变量可以通过赋值指向不同类型的对象。
b、内置的type()可以用来查询变量所指的对象类型。
c、python可以同时为多个变量赋值,如a,b = 1,2。
d、在混合计算时,python会把整型转换成为浮点数。
e、数值的除法包含两个运算符:'/’总返回一个浮点数,'//'返回一个向下取整的整数部分,也就是说,'//'得到的并不一定是整数类型的数,它与分母分子的数据类型相关。
如:>>>2/4 得到一个浮点数0.5;>>>7//2 得到一个整数3;>>>7.0//2 得到一个浮点数3.0。
f、复数可以用a+bj或者complex(a,b)表示,复数的实部和虚部都是浮点型。
2、string(字符串)【在上一篇python基础概念中有详述】
3、List(列表):列表是python中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构实现。
a、列表中的元素类型可以不相同,它支持数字,字符串,也可以嵌套列表。
b、列表是写在方括号[]之间,用逗号分隔开的元素列表。访问列表中的值直接跟集合下标访问即可。
c、列表截取与字符串类似,返回一个包含所需元素的新列表。
d、与字符串不一样,列表中的元素是可以改变的。List内置了许多方法,如append(),pop()等。如:
list.append(obj):在列表末尾添加新的对象。
list.count(obj):统计某个元素在列表中出现的次数。
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
list.index(obj):从列表中找出某个值对应的索引位置(如果有多个一样的,则返回第一次出现的索引)。
list.pop(index=-1):移除列表中的一个元素(默认最后一个元素),并返回该元素的值。
list.insert(index,obj):将对象插入指令索引位置中。
list.remove(obj):移除列表中某个值(如有多个,则为第一次匹配的值)。
list.reverse():反转列表中的元素。
list.sort(key=None,reverse=False):依据参数的指定对原列表进行排序。
list.clear():清空列表。
list.copy():复制列表。
e、截取的第三个参数如果为负数的话表示逆向读取:
如:str[-1::-1]:第一个参数-1表示从最后一个元素开始,第二个参数为空,表示移动到列表末尾(这时表示第一个元素),第三个参数为步长,-1表示逆向。如果str='1234',则通过此可以得到’4321‘。
4、Tuple(元组):与列表类似,不同之处是元组里的元素是不能修改的(和字符串一致),元组写在小括号里,元素之间用逗号隔开。
a、跟列表一样,元组的元素类型可以不相同。其他的运算基本一样,可以索引,可以截取。
b、虽然tuple的元素不可改变(指的是元组所指向的内存中的空间不可变),但是它可以包含可变的对象,比如list列表(比如重新对tup赋值,那只是绑定到新的对象了,不是修改原来的对象)。
c、构造0个或者1个元素的元素比较特殊,所以有一些额外的语法规则:
tup1 = () #构造0个元素的空元组
tup2 = (10,)#一个元素,需要在元素后添加逗号,否则括号会被当做是运算符使用。
d、元组中的元素值是不允许删除的,但是我们可以使用del语句来删除整个元组:del tup1
元组被删除后,输出变量时会有异常信息:name 'tup1' is not defined。
f、元组的内置函数:
len(tup):计算元组元素个数。
max/min(tup):返回元组中元素的最大值或最小值。
tuple(seq):将列表转换为元组。
上面说的三种:string、list 和 tuple 都属于 sequence(序列)。
5、Set(集合):一个无序的不重复元素序列。
a、基本功能是进行成员关系测试(就是判断该元素是否在集合中)和删除重复元素。
b、可以使用大括号{}或者set()函数创建集合,但是创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
创建格式:parame = {value1,value2,...} 或者 set(value)
c、>>>print(student)#输出集合时,重复的元素是会被自动去掉的。
d、基本运算操作:假设a = set('abracadabra')、b = set('alacazam')
差集:print(a-b):输出{'b', 'd', 'r'}
并集:print(a | b):输出{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
交集:print(a & b):输出{'a', 'c'}
a和b中不同时存在的元素:print(a^b):输出{'l', 'r', 'z', 'm', 'b', 'd'}
很明显,得到的集合并不是有序的。
e、函数:
添加:s.add(x):将元素添加到集合s中,如果元素已存在,则不进行操作。
s.update(x):跟上面差不多,只是说,这个的参数还可以是列表,元组,字典等等。
移除:s.remove(x):将元素x从集合s中移除,如果元素不存在,则会发生错误。
s.discard(x):也是移除集合中的元素,不同的是,如果元素不存在,不会发生错误。
s.pop():随机删除集合中的一个元素(pop()会对集合进行无序的排列,然后将这个无序排列集合的左边第一个元素进行删除)。
计算个数:s.len(s):计算集合s中的元素个数。
复制集合:s.copy():拷贝一个集合。
清空集合:s.clear():清空集合s。
检测集合元素:x in s:判断元素x是否在集合s中,在则返回True,否则返回False。
合并集合:set.union(set1,set2...):返回两个集合的并集存在set中,其中第一个参数是必需的目标集合。其余的为可选:
如:set1 = {"a","b","c"}
set2 = {"d","e","f"}
set3 = {"q","w","r"}
合并两个集合:set = set1.union(set2)
合并三个集合:set = set1.union(set2,set3)
其中,差集(difference()),交集(intersection_update())等集合内置方法对集合操作的跟并集的基本一致。
6、Dictionary(字典):一种可变容器模型,且可储存任意类型对象。
a、列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
b、字典是一种映射类型,用{}标识,是一个无序的键值对集合{key1:value1,key2:value2...},其中键key必须使用不可变类型,如字符串,数字或者元组,而值可以取任何数据类型。另外:不允许同一个键出现两次,创建时如果同一个键被赋值2次,后一个值会覆盖前面的值。
c、操作:dict = {'one':'华师',1:'计算机学院'}
输出键为'one'的值:print(dict['one'])。
输出键为1的值:print(dict[1])。
输出完整的字典:print(dict)。
输出所有键:print(dict.keys())。
输出所有值:print(dict.values())。
清空字典:dict.clear()。
删除字典:del dict #删除字典之后,再对字典进行操作,则会引发异常,因为字典不复存在。
d、创建空字典使用{}。
e、字典的内置函数:
len(dict):计算字典元素的个数,即键的总数(key区分大小写)。
str(dict):输出字典,以可打印的字符串表示。
type(variable):返回输入的变量类型,如果变量是字典,则返回字典类型。
其中不可变数据是Number,String,Tuple;可变数据为:List,Dictionary,Set。
二、python数据类型转换:有时候我们需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可。
如:int(x)将x转换成一个整数;list(s)将序列s转换为一个列表;set(s)转换为可变集合。