首页 > 编程知识 正文

python数据结构之集合,Python中集合

时间:2023-12-24 21:58:47 阅读:322140 作者:VLYJ

本文目录一览:

python自带及pandas、numpy数据结构(一)

1.python自带数据结构:序列(如list)、映射(如字典)、集合(set)。

以下只介绍序列中的list:

创建list:

list1 = []

list1 = [1,2,3,4,5,6,7,8,9] #逗号隔开

list2 = [[1,2],[3,4],[5,6],[7,8]] #list2长度(len(list2))为2,list2[0] = [1,2]

liststring = list(“thisisalist”) #只用于创建字符串列表

索引list:

e = list1[0] #下标从零开始,用中括号

分片list:

es = list1[0:3]

es = list1[0:9:2] #步长在第二个冒号后

list拼接(list1.append(obj)、加运算及乘运算):

list长度:

list每个元素乘一个数值:

list2 = numpy.dot(list2,2)

list类似矩阵相乘(每个元素对应相乘取和):

list3 = numpy.dot(list1,list1)

#要求相乘的两个list长度相同

list3 = numpy.dot(list2,list22)

#要求numpy.shape(list2)和numpy.shape(list22)满足“左行等于右列”的矩阵相乘条件,相乘结果numpy.shape(list3)满足“左列右行”

2.numpy数据结构:

Array:

产生array:

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

data=np.array(list1)

data1 = np.zeros(5) #data1.shape = (5,),5列

data1 = np.eye(5)

索引array:

datacut = data[0,2] #取第零行第二列,此处是6

切片array:

datacut = data[0:2,2] # array([6, 5])

array长度:

data.shape

data.size

np.shape(data)

np.size(data)

len(data)

array拼接:

#括号内也有一个括号(中括号或者小括号)!

d = np.concatenate((data,data))

d = np.concatenate((data,data),axis = 1) #对应行拼接

array加法:逐个相加

array乘法:

d = data data #逐个相乘

d = np.dot(data,data) #矩阵相乘

d = data 3 #每个元素乘3

d = np.dot(data,3) #每个元素乘3

array矩阵运算:

取逆 : np.linalg.inv(data)

转置:data.T

所有元素求和 : np.sum(data)

生成随机数:np.random.normal(loc=0, scale=10, size=None)

生成标准正态分布随机数组:np.random.normal(size=(4,4))

生成二维随机数组:

np.random.multivariate_normal([0,0],np.eye(2))

生成范围在0到1之间的随机矩阵(M,N):

np.random.randint(0,2,(M,N))

Matrix:

创建matrix:

mat1 = np.mat([[1, 2, 3], [4, 5, 6]])

mat1 = np.mat(list)

mat1 = np.mat(data)

matrix是二维的,所有+,-,*都是矩阵操作。

matrix索引和分列:

mat1[0:2,1]

matrix转置:

np.transpose(mat1)

mat1.transpose()

matrix拼接:

np.concatenate([mat1,mat1])

np.concatenate([mat1,mat1],axis = 1)

numpy数据结构总结:对于numpy中的数据结构的操作方法基本相同:

创建:np.mat(list),np.array(list)

矩阵乘:np.dot(x,y)

转置:x.T or np.transpose(x)

拼接:np.concatenate([x,y],axis = 1)

索引:mat[0:1,4],ary[0:1,4]

3.pandas数据结构:

Series:

创建series:

s = pd.Series([[1,2,3],[4,5,6]],index = [‘a’,‘b’])

索引series:

s1 = s[‘b’]

拼接series:

pd.concat([s1,s1],axis = 1) #也可使用s.append(s)

DataFrame:

创建DaraFrame:

df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])

df取某一列:

dfc1 =df.x

dfc1 = df[‘x’]

dfc2 = df.iloc[:,0] #用.iloc方括号里是数字而不是column名!

dfc2 = df.iloc[:,0:3]

df取某一行:

dfr1 = df.iloc[0]

df1 = df.iloc[0:2]

df1 = df[0:2] #这种方法只能用于取一个区间

df取某个值:

dfc2 = df.iloc[0,0]

dfc2 = df.iloc[0:2,0:3]

python基础-列表 元组 集合 字典区别和用法

Python中有六个标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典)。其中:Number(数字)、String(字符串)、Tuple(元组)是不可变数据,其余三种是可变数据。

转义字符

输出结果

布尔值

布尔值是一个逻辑值,只有真(True)和假(False)

输出结果

Python数据结构包括列表(list)、元组(tuple)、集合(set)、字典(dict)等,这里主要讲解列表,列表有两个特点:

输出结果

修改表中元素

输出结果

列表中插入元素

输出结果

输出列表中的元素

输出结果

元素是否在列表元素中及统计个数

输出结果

查找某个元素在列表中的位置

输出结果

顺序结构

输出结果

if 条件 1

输出结果

if 条件 2

输出结果

循环结构

输出结果

循环语句求和

输出结果

可重复,类型可不同。 类型不同也是跟数组最本质的区别。 python里的列表用“[]”表示: 

对比a和b的结果

列表的 --- 增 -- 删 -- 改 -- 查

循环输出列表内容,在结尾添加指定的内容

字符串是 Python 中最常用的数据类型。 我们可以使用引号('或")来创建字符串。

元组与列表相似,不一样之处在于 元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组建立很简单,只须要在括号中添加元素,并使用逗号隔开便可。

字典是另外一种可变容器模型,且可存储任意类型对象。

字典的每一个键值(key=value)对用冒号(:)分割,每一个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式以下所示:

d = {key1 : value1, key2 : value2 }

字典函数

集合(set)是一个 无序的不重复元素序列。

可使用大括号 { } 或者 set() 函数建立集合,注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。

它的主要做用以下: 1.去重,把一个列表变成集合,就自动去重了 。2.关系测试,测试两组数据以前的交集、差集、并集等关系。

关系测试

输出结果

元素的添加和删除

Python 简明教程 ---13,Python 集合

目录

前几节我们已经介绍了Python 中的 列表list , 元组tuple 和 字典dict ,本节来介绍Python 中的最后一种数据结构—— 集合set 。

Python 中的 set 与 dict 很像,唯一的不同是, dict 中保存的是 键值对 ,而 set 中只保存 键 ,没有 值 。

Python 集合 有如下特点:

Python 集合的声明有两种方式:

创建 空集合 时,只能用 set() ,而不能用 {} :

创建 非空集合 时,可以用 set() ,也可以用 {} :

由于集合中的元素是唯一的,如果初始化时的 可迭代 数据中有重复的元素,则会自动删去重复的元素:

使用 len() 函数可以查看集合中元素的个数:

由于Python 集合中的元素的是无序的,所以可不能使用 下标 的方式来访问集合中的单个元素。

我们可以使用 for 循环 来遍历集合中的所有元素:

我们可以对两个集合进行如下运算:

交集与并集

in 运算

使用 dir(set) 查看集合支持的所有方法:

下面一一介绍这些 非魔法方法 ,共17 个。

1. add 方法

由于集合中的元素是唯一的,向集合中添加元素时有两种情况:

示例:

2. remove 方法

示例:

3. discard 方法

示例:

4. pop 方法

示例:

5. union 方法

示例:

6. update 方法

示例:

7. clear 方法

示例:

8. copy 方法

示例:

9. difference 方法

示例:

10. difference_update 方法

示例:

11. intersection 方法

示例:

12. intersection_update 方法

示例:

13. isdisjoint 方法

示例:

14. issubset 方法

示例:

15. issuperset 方法

示例:

16. symmetric_difference 方法

示例:

17. symmetric_difference_update 方法

示例:

(完。)

推荐阅读:

Python 简明教程 --- 8,Python 字符串函数

Python 简明教程 --- 9,Python 编码

Python 简明教程 ---10,Python 列表

Python 简明教程 ---11,Python 元组

Python 简明教程 ---12,Python 字典

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。