Python中的数据类型:

根据其自身的范围,可以分为两类:"数字"型,"容器"型

"数值"型:int, float, complex, bool, None

"容器"型:list, tuple, set, dict, str

一 "数字"型:

int就是数学中的整数数字。例:1, 2, 3, 4

float就是数学中的小数数字。例:1.2, 2.3, 3.4

complex就是数学中的复数,分为整数部和虚数部。例:1+2j, 2+3j, 3+4j

当然上面三个类型的运算也是遵循数学运算的

num1 = 1
num11 = 3

num2 = 1.2
num21 = 2.3

num3 = 1 + 2j
num31 = 2 + 3j

num12 = num1 + num11
num22 = num2 + num21
num32 = num3 + num31

print(num12, num22, num32)


4 3.5 (3+5j)

bool有两个值,在Python中它是True和False,也可以是0和1因此在这里我在这里把他归为数值型

None本身就是一个空,就是其实并不归为数字型,这里为了方便理解我将它归为这一类。它是一个特殊的常量,可以将它赋值给别的变量,但是不能对它进行赋值;跟任何数据类型比较都会返回false;有自己的数据类型。

简单的理解希望能让您受到启发

print(bool(0))

print(bool(1), bool(2))

print(type(None))


False
True True
<class 'NoneType'>

二"容器"型

序列

顾名思义就是有序的多个元素的组合

list 列表:定义一个列表用“[]”定义,内部可以包含多个任意数据类型元素,以“,”号隔开。能够进行增删改查,排序等操作。通过内置函数append,extend,insert可以对其进行增加元素,pop, remove进行删除i,进行ndex访问内部元素,sort进行排序。

lt = [1, 2, 3, 4, 5, 6]
# 修改元素
lt[0] = 100
# 追加元素
lt.append(200)
# 追加列表
# lt.append([200, 300])
lt.extend([200, 300])
# 插入元素
lt.insert(2, 400)
lt.insert(4, 400)
# 删除元素
del lt[0]
# 根据数值进行删除,默认删除最后面一个
lt.remove(200)
# 弹出式删除,弹出最后面一个数值
f = lt.pop()
# 索引,找到最靠前那一个的下标,若索引你没找到,会报错
print(lt.index(400))
# 统计
print(lt.count(200))
# 排序
lt.reverse() # 表示逆序

lt.sort(reverse=True) # 按照数值的降序

print(lt)






1
1
[400, 400, 200, 6, 5, 4, 3, 2]

tuple元组:定义一个元组用“()”定义,内部可以包含多个人任意数据类型的的元素,以“,”号隔开。能通过index来进行访问。不能对内部元素进行更改,如果内部元素是一个支持更改的容器,可以对元素内部进行更改。还有一点就是因为小括号进行定义,怕与语法中的小括号混淆,当定义一个元素的时候后面要带一个逗号。

tp = (1, 2, 3, 4, 5, 1, 2, 3, 1, 3, 2, 2, 1)
tp2 = (4, 5, 6)
tp.index(2)
print(tp.index(2),type(list(tp)))


C:\Users\lixia\AppData\Local\Programs\Python\Python36\python.exe D:/python/test/boke/1227.py
1 <class 'list'>

str字符串:定义字符串使用“ '' ”," '' ' ",一对单引号,一对双引号,三对单引号,三队双引号进行定义。字符串灵活多变有多重方式支持增删改查。以及正则表达式专门对字符串进行处理,eval,repr等多种内置函数可以对其进行操作。简单说一下例如:split对其切割,join字符串拼接,find进行查找,count进行统计等等。

映射

通俗理解就是一对一,能通过一个元素找到另一个元素。

dict字典:就是一个映射类数据类型。通过大括号“{}”进行定义,内部元素成对出现,一个元素由一个key,一个value中间通过冒号:进行连接,其中key只能是字符串,数字,元组;value可以是任意数据类型,通常叫做键值对。同样可以对其内部元素进行增删改查多种操作。字典的访问时通过访问通过索引键来访问值。常用到的访问方法.keys(), .values(),get();修改方法setdefault,update,元素.[key]=value,删除方法pop,popitem多种方法对其进行操作,这里我们只列出经常使用的几种。

dic = {'name': 'dahua', 'age': '18'}
# 当键不存在时,会报 KeyError
# 可以通过get()方法获取值,即使不存在也不会报错,会返回None
print(dic.get('weight'))
# 可以设置默认值,有对应的键返回其值,没有的话返回默认值
print(dic.get('weight', 75))
print(dic['name'])





None
75
dahua

集合

集合是一种无序的多个数据类型的元素的组合

set集合:集合也是通过大括号“{}”记性定义,内部可是多个任意数据类型得元素。集合能够对其内部元素进行增删操作,add函数进行增加操作,remove,discard,pop对其进行删除操作,还有一些函数像difference,intersection,union来处理集合之间的函数来实现它的并集,交集,差集的操作。

ss = {'李白', '杜甫', '白居易', '苏轼'}
ss1 = {'李白', '李商隐', '苏轼'}
print(ss & ss1)
print(ss | ss1)
print(ss - ss1)






{'李白', '苏轼'}
{'白居易', '李白', '苏轼', '杜甫', '李商隐'}
{'白居易', '杜甫'}

容器类数据类型每一个对其进行操作的方法尽量都进行手动实现,在这里我只进行一些比较常用的内置函数进行实现其功能,还对一些比较特殊的方法进行实现说明。

延伸

在Python的内置数据类型中,不存在数组这种类型。但是一些其他的计算机语言有这种数据类型。其中列表类似于数组的类型。但是Python是一门可以扩展的语言,其中有一个numpy库实现数组这个类型,可以通过numpy.arry([[1, 2, 3, 4][5, 6, 7, 8]])来进行定义数组。下面来演示一下数组的基础运算,对比列表进行学习。

import numpy as np

x = [1, 2, 3, 4]
y = [5, 6, 7, 8]

ax = np.array([1, 2, 3, 4])
ay = np.array([5, 6, 7, 8])

# 类型
print(type(x), type(ax))
# 加法运算
print(10+ax)
print(x+y, ax+ay)
# 乘法运算
print(ax*10)
print(x*2, ax*ay)
# 多维数组
axx = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [9, 10, 11, 12],
                [13, 14, 15, 16]])
xx=[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
print(axx[1], xx[1])
print("快乐的分割线-----------------------------------------------------------------------快乐的分割线")
print(axx[:, 2])
print(axx[1:3, 1:3])
print("快乐的分割线-----------------------------------------------------------------------快乐的分割线")
print(axx + 100)
print(axx*100)

打印测试

C:\Users\lixia\AppData\Local\Programs\Python\Python36\python.exe D:/python/py/1217-share/1217-array.py
<class 'list'> <class 'numpy.ndarray'>
[11 12 13 14]
[1, 2, 3, 4, 5, 6, 7, 8] [ 6  8 10 12]
[10 20 30 40]
[1, 2, 3, 4, 1, 2, 3, 4] [ 5 12 21 32]
[5 6 7 8] [5, 6, 7, 8]
快乐的分割线-----------------------------------------------------------------------快乐的分割线
[ 3  7 11 15]
[[ 6  7]
 [10 11]]
快乐的分割线-----------------------------------------------------------------------快乐的分割线
[[101 102 103 104]
 [105 106 107 108]
 [109 110 111 112]
 [113 114 115 116]]
[[ 100  200  300  400]
 [ 500  600  700  800]
 [ 900 1000 1100 1200]
 [1300 1400 1500 1600]]

可以参考学习,numpy这个模块对于是一个非常基础并且重要的数据处理库。