python数据结构(二)

一、列表推导式

列表推导式通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

1 a=[1,2,3]
2 [i*10 for i in a]           #生成新列表,其中的元素分别是a中元素乘以10   
3 [i*10 for i in a if i>1]  #生成新列表,其中元素取a中大于1的元素再分别乘以10

在python中运行结果如下:

 二、元组

Python元组和Python列表数据类似,都是线性表。唯一不同的是,Python元组赋值后所存储的数据不能被程序修改,可以将元组看作是只能读取数据不能修改数据的列表。

声明一个元组并赋值的语法与列表相同,不同之处是元组使用小括号,列表使用方括号,元素之间也是用英文逗号分隔。

元组是不可修改类型,虽然在程序运行过程中无法对元组的元素进行插入和删除运算。但元组可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除。

元组的不可修改特性可能会让元组变得非常不灵活,因为元组作为容器对象,很多时候需要对容器的元素进行修改,这在元组中是不允许的。元组可以说是列表数据的一种补充,数据的不可修改性在程序设计中也是非常重要的。例如,当需要将数据作为参数传递给API,但不希望API修改参数时,就可以传递一个元组类型;再如,当需要定义一组Key时,也可以采用元组类型。因此可以说元组和列表是互为补充的数据类型。

1 a=(1,2,3)   #创建一个元组
2 a.append(4) #尝试用列表的添加方式向元组内添加元素,但是元组是不可修改的
3 b=('1',6,7) #创建一个新元组
4 c=a,b      #合并两个元组

在python中运行结果如下:

 

 三、集合

集合是一个无序不重复元素的集。主要是用来进行关系测试和消除重复元素。

可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典。

1 a={'1','1','2','2','3','2'} #创建一个集合
2 a        #集合自动删除重复元素
3 '3' in a   #'3'是否在集合a中    
4 '5' in a

 四、字典

序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。

一对大括号创建一个空的字典:{}。

1 a={'a':1,'b':2} #创建一个集合,其中包括关键词与值
2 a['a']                #字典的索引是关键词而不是整数

在python中效果如下:

 除了直接赋值的方式创建字典,还可以使用dict() 函数创建一个字典,如下:

 

posted @ 2020-04-14 12:59  Roronoa-Zoro  阅读(164)  评论(0编辑  收藏  举报