数据结构。数据结构是以某种方式(如通过编号)组合起来的数据 元素(如数、字符乃至其他数据结构)集合。在Python中,最基本的数据结构为序列(sequence)。 序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引 为1,依此类推。
先介绍两种常用的:列表和元组(元组与列表类似,区别在元组的元素不能修改)
列表用方括号,元组用小括号
创建一个列表
>>> lst=['aw','qwe',1,200,[1,2]]
['aw', 'qwe', 1, 200, [1, 2]]
可以发现列表里面的元素不需要相同类型。
有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查
索引:序列中的所有元素都有编号——从0开始递增(也可以从右往左 ,从-1开始)
>>> lst[0]
'aw'
>>> lst[1]
'qwe'
>>> lst[-1]
[1, 2]
切片:可使用切片来访问特定范围内的元素,(第一个索引指定的元素包含在切片内,
但第二个索引指定的元素不包含在切片内)
>>> lst=['aw','qwe',1,200,[1,2]]
>>> lst[2:5]
[1, 200, [1, 2]]
>>> lst[2:-1]
[1, 200]
>>> lst[-3:0]
[]
这里注意:第一个索引指定的元素位于第二个索 引指定的元素后面(在这里,倒数第3个元素位于第1个元素后面),结果就为空序列。
到序列末尾可以这样写lst[-3:]
从第一个开始:lst[:3]
全部: lst[:]
另外切片的时候可以指定步长,例如:
>>> lst[0:5:1]
['aw', 'qwe', 1, 200, [1, 2]]
>>> lst[0:5:2] (还可以这样写lst[::2],结果一样)
['aw', 1, [1, 2]]
注意:步长不能为0,可以为负数,即从右向左提取元素
>>> lst[5:0:-1]
[[1, 2], 200, 1, 'qwe']
>>> lst[::-1]
[[1, 2], 200, 1, 'qwe', 'aw']
相加:可使用加法运算符来拼接序列
>>> [1,2,3]+['a','b','c']
[1, 2, 3, 'a', 'b', 'c']
相乘:
>>> ['python']*3
['python', 'python', 'python']
>>> [None]*3
[None, None, None]
None表示什么 都没有
成员资格检查:要检查特定的值是否包含在序列中,可使用运算符in.返回布尔值True和False
>>> lst=['aw', 'qwe', 1, 200, [1, 2]]
>>> 'aw' in lst
True
>>> 'aa' in lst
False
还有内置函数长度,最大,最小:len() ,max(), min()
以下是基本的列表操作
list()函数,可以将字符串转为列表,
>>> list('python')
['p', 'y', 't', 'h', 'o', 'n’]
请注意,可将任何序列(而不仅仅是字符串)作为list的参数。
修改
>>> lst[1]='python'
['aw', 'python', 1, 200, [1, 2]]
删除
>>> del lst[1]
['aw', 1, 200, [1, 2]]
切片
>>> name=['P', 'e', 'r', 'l']
>>> name[2:] = list('ar’)
['P', 'e', 'a', 'r’]
>>> name[1:] = list('ython’)
['P', 'y', 't', 'h', 'o', 'n’]
还可以用来插入一个元素
>>> numbers = [1, 5]
>>> numbers[1:1] = [2, 3, 4]
>>> numbers
[1, 2, 3, 4, 5]
列表还有以下常用方法:
append添加元素
clear清空
copy复制
count计算元素出现次数
extend拼接列表
index方法index在列表中查找指定值第一次出现的索引。
insert插入
pop列表中删除一个元素(默认为最后一个元素),并返回这一元素
注意: pop是唯一既修改列表又返回一个非None值的列表方法
remove删除
reverse相反的顺序排列列表中的元素
sort用于对列表就地排序
元组
元组:与列表一样,元组也是序列,唯一的差别在于元组是不能修改
>>>(1, 2, 3)输出:(1, 2, 3)
函数tuple将序列转换为元组
>>> tuple([1, 2, 3])
(1, 2, 3)
领取专属 10元无门槛券
私享最新 技术干货