Python的数据类型与数据结构
对Python的数据类型与数据结构进行的复习,基本的数据类型与数据结构都已经概况出了。大家可以参考学习。如有有错误的地方,希望留言告诉我。
数据类型
Python
数据主要分为:
- 整数型 ;数字的整数
- 浮点型; 数字带小数
- 字符串; 用 ‘’ 或者 “” 引用的任意文本
- 布尔型;只有
True 和
False
数据结构分为:
- 列表 list
- 元祖 tuple
- 字典 dict
- 集合 set
接下来用代码详细解释数据类型;
python的type()方法可以得数据类型,
例如:
当不确定变量 a 是什么数据类型的时候,可以通过print(type(a))打印出a 的数据类型
#整数型;可以为正数也可以为负数,也可以为0 a=100 b=0 c=-2 print(a,b,c) 输出:100 ,0, -2
#浮点型,带有小数的数值 a=1.2 b=0.12 print(type(a),a) print(type(b),b)
输出:<class 'float'> 1.2 <class 'float'> 0.12
#布尔型 a=True b=False print(a,b)
输出:
#字符串 print("Hello,Python") print('H') Hello,Python H
布尔值详解
布尔值可以用 and or not 来进行运算,得到结果也是布尔值
a=True b=False # and 运算 c1=a and a c2= a and b c3= b and b # or 运算 d1=a or a d2= b or b d3= a or b # not 运算 e1= not a e2= not b print(c1,c2,c3) print(d1,d2,d3) print(e1,e2) 输出: True False False True False True False True
逻辑运算(and,or,not )
and 运算中,代码中a为真,b为假。 and 运算中如果有一个变量为假,则得到结果就为假。两个变量为真,得到结果为真;
or 运算中,只要一个运算的变量为真,得到结果则为真。如果两边变量都为假,则为假
not 和容易,就是取相反的。例如 a为真(True),则 not a 为假(False)
数据结构
列表-list
list是一种有序的集合,可以随时添加和删除其中的元素。
创建列表 用 【】符号
list索引为0开始的,索引0 表示第1个元素,以此类推
切边活用,可以更好的查询数据
#创建一个list 列表 L=[1,"hello",True,1.2] print(L)#打印出L列表 print(len(L))#利用len()方法查询列表的长度 print(L[0],L[1])#根据索引 查询 列表中的数据,索引是从0 开始的 #切片方法活用 print(L[0:2])# 切片 从索引0 到 1提取list的元素 print(L[1:0])#q切片 从索引1到最后的元素全部提取 print(L[-1])#提取倒数第一个元素 print(L[-3:0])#倒数第三个元素 往后提取 print(L[::2])#切片 步长为2 print(L[::-1])#倒叙 打印出list
[1, 'hello', True, 1.2] 4 1 hello [1, 'hello'] [] 1.2 [] [1, True] [1.2, True, 'hello', 1]
增加元素
#创建一个list 列表 """ append方法每次只能在末尾填入一个元素; insert方法可在指定的位置插入一个元素; """ L=[1,"hello",True,1.2] print(L)#打印出L列表 L.append('python')#在列表的最后插入元素 print(L) L.insert(0,"Love") print(L)
[1, 'hello', True, 1.2] [1, 'hello', True, 1.2, 'python'] ['Love', 1, 'hello', True, 1.2, 'python']
删元素
""" pop方法在不指定参数时默认删除末尾元素,也可以指定删除某个位置的元素; remove方法删除指定的元素值; clear方法清空列表元素; del函数删除列表对象; """ L.pop()#末尾删除一个元素 print(L) L.pop(1)#指定一个位置删除一个元素 print(L) L.remove(True) print(L) L.clear() print(L)
['Love', 1, 'hello', True, 1.2] ['Love', 'hello', True, 1.2] ['Love', 'hello', 1.2] []
copy方法复制一个物理对象,而非视图对象; count方法计数; index方法返回索引位置; reverse方法实现元素颠倒; sort方法排序
""" copy方法复制一个物理对象,而非视图对象; count方法计数; index方法返回索引位置; reverse方法实现元素颠倒; sort方法排序; """ L1=['a','a','b','c','d','e','f','g'] L2=L1.copy()#复制list print(L2) print(L1.count('a'))#计“a”出现吃次数 print(L1.index('b'))#反为b的索引位子 L1.reverse()#颠倒元素 print(L1) L1.sort()#默认升序排序 print(L1)
['a', 'a', 'b', 'c', 'd', 'e', 'f', 'g'] 2 2 ['g', 'f', 'e', 'd', 'c', 'b', 'a', 'a'] ['a', 'a', 'b', 'c', 'd', 'e', 'f', 'g']
元组是不可变的序列,没有增,删,改的权限;
只能查询和使用索引,切片等一些功能
元组最大的好处是可以保证数据的安全。
T=(1,2,'a','b') print(T) print(T[0]) print(T[0:2]) (1, 2, 'a', 'b') 1 (1, 2)
字典,
字典的创建就不是通过上面的中括号[]和圆括号()方法构建了,
而是通过花括号{}或dict函数来构造键-值对。
#创建名字和年龄的字典,名字为键,年龄为值 name_age={"da_wang":27,"liu":26,"kong":12} print(name_age) print(name_age["kong"]) #根据key值 从新付给新的数据 name_age["kong"]=27 print(name_age) #要删除一个key,用pop(key)方法,对应的value也会从dict中删除: print(name_age.pop("liu")) #要避免key不存在的错误,有两种办法,一是通过in判断key是否存在: print("da" in name_age) #通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value: print(name_age.get("da_wang"))
{'da_wang': 27, 'liu': 26, 'kong': 12} 12 {'da_wang': 27, 'liu': 26, 'kong': 27} 26 False 27
list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
“总结引用的廖雪峰老师的博客”