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)

输出:
True False
 
#字符串
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有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

       “总结引用的廖雪峰老师的博客”

 

posted @ 2017-10-22 15:50  行走的丸子  阅读(12681)  评论(0编辑  收藏  举报