列表 | list = [ val1 , val2 , val3 , val4 ] | |
字典 | dict = { key1: val1 , key2: val2 } | |
元组 | tuple = ( val1 , val2 , val3 , val4 ) | |
集合 | set = { val1 , val2 , val3 , val4 } |
从最容易识别的特征上来说,列表中的元素使用方括号扩起来,字典和集合是花括号,而元组则是圆括号。其中字典中的元素是均带有 “ : ” 的 key 与 value 的对应关系组。
一、列表(list)
首先我们从列表开始,深入地讲解每一种数据结构。列表具有的最显著的特征是:
1.列表中的每一个元素都是可变的;
2.列表中的元素是有序的,也就是说每一个元素都有一个位置;
3.列表可以容纳 Python 中的任何对象。
列表中的元素是可变的,这意味着我们可以在列表中添加、删除和修改元素。
列表中的每一个元素都对应着一个位置,我们通过输入位置而查询该位置所对应的值,试着输入:
Yin=['C','L','M']
print(Yin[0])
第三个特征是列表可以装入 Python 中所有的对象,看下面的例子就知道了:
all=[
1, #整数
1.0, #浮点数
'Yin', #字符串
print(5), #函数
True, #布尔型
[1,2], #列表
(1,2), #元组
{"key":1} #字典
]
1、列表的操作
(1)、增加
Yin=[1,3,4]
Yin.insert(1,2)
print(Yin)
在使用 insert 方法的时候,必须指定在列表中要插入新的元素的位置,插入元素的实际位置是在指定位置元素之前的位置,如果指定插入的位置在列表中不存在,实际上也就是超出指定列表长度,那么这个元素一定会被放在列表的最后位置。
(2)、删除
Yin=[1,3,4]
Yin.remove(1)
print(Yin)
(3)、修改
Yin[0]=2
(4)、索引
2、切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
Yin=[start:end:step]
参数说明:
Yin:表示序列的名称
start:表示切片的开始位置(包括该位置),如果不指定,则默认为0。
end:表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
3、对列表进行统计与计算
(1)、获取指定元素出现的次数
使用列表对象的 count() 方法可以获取指定元素在列表中的出现次数。基本语法格式如下:
Yin.count(obj)
(2)、获取指定元素首次出现的下标
使用列表对象的 index() 方法可以获取指定元素在列表中首次出现的位置(即索引)。基本语法格式如下:
Yin.index(obj)
参数说明:
Yin:表示列表的名称
obj:表示要判断是否存在的对象,这里只能进行精确匹配,即不能是元素值的一部分。
(3)、统计数值列表的元素和
在Python中,提供了sumO)函数用于统计数值列表中各元素的和。语法格式如下:
sum(Yin[,start])
参数说明:
Yin:表示要统计的列表。
start:表示统计结果是从哪个数开始(即将统计结果加上start所指定数),是可选参数,如果没有指定,默认值为0。
二、字典
编程世界中其实有很多概念都基于现实生活的原型,字典这种数据结构的特征也正如现实世界中的字典一样,使用名称一内容进行数据的构建,在Python 中分别对应着键(key)-值(value),习惯上称之为键值对。
字典的特征:
1.字典中数据必须是以键值对的形式出现的;
2.逻辑上讲,键是不能重复的,而值可以重复;
3.字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,可修改的,可以是任何对象。
语法格式:
Yin={'key1':'value1','key2':'value2'}
参数说明:
Yin:表示字典名称;
key1,key2:表示元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;
value1,value2:表示元素的值,可以是任何数据类型,不是必须唯一。
1、遍历字典
使用字典对象的 items() 方法可以获取字典的“键-值对”列表。其语法格式如下:
Yin.items()
其中,Yin 为字典对象;返回值为可遍历的(键-值对)的元组列表。想要获取到具体的“键-值对”,可以通过 for 循环遍历该元组列表。
三、元组
元组其实可以理解成一个稳固版的列表,因为元组是不可修改的,因此在列表中的存在的方法均不可以使用在元组上,但是元组是可以被查看索引的,方式就和列表一样:
letters=(1,2,3,4)
letters[0]
四、集合
集合则更接近数学上集合的概念。每一个集合中的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。
集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除: