数据结构:数据结构是以某种方式(如通过编号)组合起来的数据元素集合。在python中,最基本的数据结构为序列,序列中每个元素都有编号从0开始。
1、序列概述: python内置了许多种序列,列表、元组、字符串等。 列表和元组的不同在于,列表是可以修改的,而元组不可以,这意味着列表用于需要中途添加元素的情形,而元组适用于禁止修改元素的情形。
1.1、创建列表
假设你现在需要一个东西来储存多个名字,那么用列表正合适
list_name = ["王晓明","李二"] #所有元素放在方括号内,并且里面的元素有逗号隔开
列表里面还可以包含其他列表 1.2、通用的序列操作 有一些操作适用所有序列,这些操作包括索引、切片、相加、相乘和成员资格检查。还有一些内置函数用来判断序列长度以及找出最大值和最小值。
1.2.1、序列中的所有元素都有编号,从0开始递增,你可以像(下图)这样访问 上图访问元素的这种方式称之为索引,这种方式适用于索引序列。-1代表最后一个元素的位置
1.2.2、切片 除了使用索引来访问单个元素之外,还可以用切片来访问特定范围内的元素 注意:切片只会切到第二个数的前一位,所以这里只输出了.ba没有i这是正确的
假如我现在有一个列表里面有很多个元素,然后我想要最后3位,我该怎么办?或许你可以这样。。。
top = 'www.baidu.com' #我只想要最后的com
print(top[-3:-1]) #也许我可以这样
>>>co #代码输出(这样好像不包括最后一个元素)
print(top[-3:0]) #那在-1再进一步写成0呢
>>>[] #代码输出(是个空列表)
注:如果第一个索引的位置位于第二个索引的后面那么就是空序列这里-3在0的后面
print(top[-3:]) #事实上可以这样写,不指定第二个元素结束于序列末尾
#同样的,如果切片在一个序列开头,可以不指定第一个元素
print(top[:5])
#如果要复制整个序列,可将两个索引都省略
top[:] #代码输出www.baidu.com
1.2.3、步长 执行切片时还可以指定第三个数,整个数必须大于1(默认就是1),整个数代表着步长(如下图,每隔一个元素取一个)
1.2.4、序列相加 加法运算符来拼接序列,但是要注意只能拼接同类型的。
1.2.5、序列相乘 将序列与数n相乘时,将重复整个序列n次来生成一个新序列 1.2.6、成员资格in 要检查一个值是否在序列中可以使用运算符in。满足条件返回True,不满足返回False(布尔运算符)。
1.3、列表
前面已经说过列表的基本操作,这里主要说下列表的方法
1.3.1、list函数 list函数用于类型转换,可以把字符串或者元组转换为列表 1.3.2、列表的基本操作
修改列表的值
lis = [1,2,3] #定义一个列表
lis[0] = 5 #使用索引给指定的元素赋值即可
print(lis) #命令回显[5,2,3]
删除元素
lis = [1,2,3]
del lis[0] # 将第一个元素删除
1.3.3、 列表方法 append方法(将一个对象添加到列表末尾)
clear方法(清空列表)
copy方法(复制)
count方法(计算给定的值在列表中出现的次数)
extend方法(将多个值添加到列表末尾),那么是不是就是说可以将一个列表的值添加到另一个列表中呢?看下图
insert方法(也是向列表中添加元素,只是可以指定位置)
index方法( 返回一个指定数值的下标)
pop(从列表末尾删除一个值)
remove(删除一个指定的值)
reverse(按照相反顺序排序列表)
sort(排序) 方法sort用于对列表排序,但是是对原来的列表进行排序,而不是返回一个副本。
提示:如果不想修改原有列表那么只能copy一份,不能直接接受sort的值,因为 它没有值
** 1.4、元组** 与列表一样,元组也是序列,和列表不同的地方在于,元组无法修改。创建一个元组也很简单,只要将一些值用逗号隔开即可,自动创建元组。下图上创建b元组的时候带有(),这样也可以,一般也都这样做(推荐第二种)。
** 1.4.1、如何创建一个空元组和只要一个值的元组** 空元组用2个括号表示,一个元素的元组后面加一个逗号
**1.4.2、tuple函数**
tuple和list工作原理一样,都是将一个序列作为参数,转换为列表或者元组
补充:访问元组的方式和列表一样,下标以及切片,元组无法修改,所以也不存在任何的修改方法()实际上要修改还是有办法的