一、数字(Number)
1. int (整型,长整型)
2. float (浮点型)
3. complex(复数)
二、布尔(Boolean)
三、字符串类型(String)
四、列表
1. 创建列表
2. 列表的索引
3. 列表的切片
4. 列表加法和乘法
5.列表的修改
6. 列表的删除
7. 列表追加、插入和扩展
8. 列表元素查找
9. 列表相关的相关内置函数
10. 多维列表
五、元组
1. 元组相关概述
2. 元组修改
3. 元组删除
4. 与元组相关的内置函数
5. 元组与列表之间的转换
6. 元组的优势
六、字典
1. 字典的创建
2. 字典的访问
3. 字典的修改
4. 字典的删除
5. 字典的增加
6. 与字典相关的内置函数
七、 集合
1. 集合的创建
2. 集合的特性
3. 集合增加元素
4. 集合删除元素
5. 集合的数值运算
6. 集合中的frozenset
python有七大数据类型:
(1)数字(Number):int(整型,长整型),float(浮点型),complex(复数)
(2)布尔(Boolean):True,False
(3)字符串(String):“Python”,‘python’
(4)列表(List):[1,2,3,4],[1,2,3,[1,2,3],"hello”]
(5)字典(Dictionary):{1:"hello",2:"world"}
(6)元组(Tuple):(1,2,3,“hello”,"world")
(7)集合(Set):{1,2,3,“hello”}
注:也有说python有六大数据类型,其中把布尔型放在了数字类型中。
不可变类型有4个:数字、布尔、字符串、元组
可变类型有3个:列表、字典、集合
可变数据类型是指内容可以随着函数的执行发生变化
不可变数据类型则是从初始化到结束都是不可改变的
下边来具体看一下每一种类型
import sys
print(sys.maxsize)
输出结果为:
9223372036854775807
例如: m = 3e2 (3e2代表3乘以10的2次方),此时m= 300
n = 3E2 (E与e的含义相同,都是表示10的多少次方),此时 n = 300
f = 0.01
m = 5e3
n = 5E3
print('f=',f,'m=',m,'n=',n)
输出的结果为:
f= 0.01 m= 5000.0 n= 5000.0
c = 10 + 20j
d = complex(5, 10)
# c.real 实部 c.imag 虚部 c.conjugate 共轭复数
print(c, d, c.real, c.imag, c.conjugate())
输出的结果如下:
(10+20j) (5+10j) 10.0 20.0 (10-20j)
运算 |
结果 |
x and y |
只有x和y同时为True时,结果为True |
x or y |
只要x和y其中一个为True时,结果为True |
not x |
取反,即x为True时,结果为False |
a = True
b = False
print(a and b)
print(a or b)
print(not a)
print(a+b) # 当两个布尔型进行算数运算时就会转换成int类型
输出结果如下:
False
True
False
1
String类型是我们所熟知的类型,定义字符串值的时候可以用单引号,也可以用双引号
a = 'hello'
b = "world"
print(a,b)
输出结果为:
hello world
例如:
list1 = [1,2,3,4] 其中1,2,3,4就是列表的元素
list2 = [1,2,3,'hello',12] 同一个列表中可以有多个数据类型
list3 = [1,2,3,4,1,2,3] 列表中的元素是可以重复的
list1 = [1,2,3,4,'hello']
print("列表list1的第一个值:",list1[0])
print("列表list1的最后一个值:",list1[-1])
输出结果如下:
列表list1的第一个值: 1
列表list1的最后一个值: hello
列表切片是指截取列表中的分元素,将截取的元素从新生成一个子列表
切片是从左到右进行的
格式为: 新列表 = 旧列表[起始值:终止值] (需要注意的是这里的切片位置是左闭右开的,也也就是说生成的新列表包含起索引对应的元素,但不包含终止索引对应的元素)】
list1 = [1,2,3,4,5,6,7,8,9]
list2 = list1[2:6]
# 2表示起始索引值为2,此处对应的元素值为3
# 6表示终止索引值为6,此处对应的元素值为7
list3 = list1[-6:-3]
print('list2=',list2)
print('list2=',list3)
输出结果为:
list2= [3, 4, 5, 6]
list2= [4, 5, 6]
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1+list2
list4 = list1*3
print("list3=",list3)
print("list4=",list4)
输出结果如下:
list3= [1, 2, 3, 4, 5, 6]
list4= [1, 2, 3, 1, 2, 3, 1, 2, 3]
list1 = [1,2,0,4,5,6,7]
# 将索引值为2的元素的值修改为三
list1[2] = 3
print(list1)
list1[2:6]=[0,0,0,0]
print(list1)
输出结果为:
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 0, 0, 0, 0, 7]
list删除有四种方法:del、pop、remove、clear
list1 = [1,2,1,4,5,6,7]
# 删除列表索引为1的值
del list1[1]
print("list1=",list1) #list2= [1, 1, 4, 5, 6]
list2= [1,2,1,4,5,6,7]
#默认删除列表中的最后一个值
list2.pop()
# 删除列表索引为1的值
list2.pop(1)
print("list2=",list2) #list1= [1, 1, 4, 5, 6, 7]
list3 = [1,2,1,4,5,6,7]
# s删除列表中值为1的元素,如果列表中有多个,则默认删除第一个
list3.remove(1)
print("list3=",list3) #list3= [2, 1, 4, 5, 6, 7]
list4 = [1,2,1,4,5,6,7]
# 请款列表
list4.clear()
print("list4=",list4) #list4= []
list1 = [1,2,3,4,5,6,7]
list1.append(8)
list1.append([9,10])
print("list1 =",list1)
对应输出结果为:list1 = [1, 2, 3, 4, 5, 6, 7, 8, [9, 10]]
list2 = [1,2,4,5,6,7]
#在列表索引值为2的,增加元素3
list2.insert(2,3)
print("list2 =",list2)
对应输出结果为:list2 = [1, 2, 3, 4, 5, 6, 7]
list3 = [1,2,3]
list3.extend([4,5,6])
print("list3 =",list3)
对应输出结果为:list3 = [1, 2, 3, 4, 5, 6]
list1 = [1,2,3,4,5,6]
print(list1.index(4,1,5)) # 查找到了索引位置为3
print(list1.index(5)) # 查找到了索引位置为4
列表函数 |
|
函数 |
含义 |
len(list) |
列表元素个数 |
max(list) |
返回列表元素最大值 |
min(list) |
返回列表元素最小值 |
list(seq) |
将序列转换为列表 |
len(list) |
列表元素个数 |
max(list) |
返回列表元素最大值 |
min(list) |
返回列表元素最小值 |
list(seq) |
将序列转换为列表 |
多维列表指的是列表的元素也是列表, 类似于多维数组
list1 = [1,2]
list2 = [1,2,3]
list3= [list1,list2]
print(list3)
输出如下:
[[1, 2], [1, 2, 3]]
# list3 是二维列表
Tuple元组的创建 变量名 = (元素1,元素2,…,元素n)
元组从形式和列表相识,标志是“(”小括号 当元组中只有一个元素时,需要在元素后面加逗号 元组的访问也是通过索引来访问的,并且支持切片操作
元组是不可变数据类型,所以不能被修改,但可以重新赋值和用“+”进行连接产 生新的元组
# 元组可以包涵多种数据类型
tup1 = (1,2,3,4,'hello')
# 当元组只有一个元素时,需要在元素后面加一个逗号
tup2 = ("world",)
# 给元组进行+ 运算,从新生成一个新的元组
tup3 = tup1 + tup2
print(tup3)
输出结果为:
(1, 2, 3, 4, 'hello', 'world')
元素值不允许删除的,但可使用del语句删除整个元组 需要注意的是,删除后的元组对象不可再次引用。
tup1 = (1,2,3,4,'hello')
del tup1
print(tup1)
#用del 将元组删除之后是不能在对之前的元组进行引用的,否则会报错
Traceback (most recent call last):
File "F:\course_study\python3\test\training\Type.py", line 89, in
print(tup1)
NameError: name 'tup1' is not defined
元组函数 |
|
函数 |
含义 |
cmp(tuple1, tuple2) |
比较两个元组元素 Python3没有了 |
len(tuple) |
计算元组元素个数 |
max(tuple) |
返回元组中元素的最大值 |
min(tuple) |
返回元组中元素的最小值 |
tuple(seq) |
将列表转换为元组 |
元组方法 |
|
方法 |
描述 |
tuple.count(value) |
统计元组中元素value的个数 |
tuple.index(value, [start, [stop]]) |
返回列元组指定元素所在的索引位置,可以通过start和stop参数设置搜索范围。如果元素不存在则会报出异常 |
元组与列表是可以相互转换的
list1 =[1,2,3,45]
tuple1 = (91,2,3,4)
list2 = list(tuple1)
tuple2 = tuple(list1)
print(list2) #[91, 2, 3, 4]
print(tuple2) #(1, 2, 3, 45)
可以使函数返回多个值
可以使程序运行性能提升
一般来说,创建元组类型tuple的变量比列表类型list要快,而且占用更小的存储空间
使用元组是线程安全的
元组类型变量的元素不可更改性,可保证多线程读写时的安全问题
stu = {"name":"zhangsan","age":21,"sex":"F"}
print(stu)
输出如下:
{'name': 'zhangsan', 'age': 21, 'sex': 'F'}
stu = {"name":"zhangsan","age":21,"sex":"F"}
print(stu)print(stu["name"],stu["age"]) #输出为:zhangsan 21
print(stu.get("name"),stu.get("age")) #输出为:zhangsan 21
典通过对key值的引用对value值进行修改
stu = {"name":"zhangsan","age":21,"sex":"F"}
stu["sex"] ="M"
print(stu)
输出结果如下:
{'name': 'zhangsan', 'age': 21, 'sex': 'M'}
典通过del关键字进行删除
stu = {"name":"zhangsan","age":21,"sex":"F"}
del stu["age"]
print(stu)
输出如下:
{'name': 'zhangsan', 'sex': 'F'}
格式:字典名[key] = value
stu = {"name":"zhangsan","age":21,"sex":"F"}
stu["county"] = "China"
print(stu)
输出结果如下:
{'name': 'zhangsan', 'age': 21, 'sex': 'F', 'county': 'China'}
字典函数 |
|
函数 |
含义 |
cmp(dict1, dict2) |
比较两个字典元素 Python3没有了 |
len(dict) |
计算字典元素个数 |
str(dict) |
输出字典可打印的字符串表示 |
字典方法 |
|
方法 |
含义 |
radiansdict.clear() |
删除字典内所有元素 |
radiansdict.copy() |
返回一个字典的浅复制 |
radiansdict.fromkeys() |
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
radiansdict.get(key,default=None) |
返回指定键的值,如果值不在字典中返回default值 |
radiansdict.has_key(key) |
如果键在字典dict里返回true,否则返回false |
radiansdict.items |
以列表返回可遍历的(键, 值) 元组数组 |
radiansdict.keys() |
以列表返回一个字典所有的键 |
radiansdict.setdefault(key,default=None) |
和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default |
radiansdict.update(dict2) |
把字典dict2键/值对更新到对象radiansdict里 |
radiansdict.values() |
以列表返回字典中的所有值 |
set1 ={1,2,3,'qwd'}
print(set1)
输出如下:
{'qwd', 1, 2, 3}
set1 = {1,2,3,5,"123",1,2,3}
print(set1)
输出为:
{1, 2, 3, 5, '123'}
# 输出的顺序不一定按照集合内的元素顺序输出,体现了集合的无序性
# 输出的元素没有重复的,体现了集合的互异性
set1 = {1,2,3,5,"123",1,2,3}
print(set1)
print(1 in set1) #True
print( 1 not in set1) #False
set1 = {1,2,3,5,"123",1,2,3}
set1.add(23)
print("ste1=",set1)
set2 = {1,2,3,4}
set2.update({5,6,7,8})
print("ste2=",set2)
输出结果如下:
ste1= {1, 2, 3, 5, '123', 23}
ste2= {1, 2, 3, 4, 5, 6, 7, 8}
取set1 = {1,2,3} set2 = {3,4,5}
运算操作 |
运算符 |
含义 |
例子 |
交集 |
& |
取两集合公共的元素 |
set1 & set2 》{3} |
并集 |
| |
取两集合全部的元素 |
set1 | set2 》{1,2,3,4,5} |
差集 |
- |
取一个集合中另一集合没有的元素 |
set1 - set2 》{1,2} set2 - set1 》{4,5} |
对称差集 |
^ |
取集合 A 和 B 中不属于 A&B 的元素 |
set1 ^ set2 》{1,2,4,5} |
set1 ={1,2,3,4}
set2 = frozenset(set1)
# 现在集合set2是一个不可变集合,若对其进行修改,添加,则会报错
到这里python的七大数据类型就介绍完了,如果有什么表述不清楚,或者有错的地方请指正