数据结构:
数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)集合。在Python中,最基本的数据结构为序列(sequence)。
序列:
序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量。同时可回绕到序列末尾,用负索引表示序列末尾元素的位置。
通用序列操作:
索引:
序列中的所有元素都有编号,也就是索引,从0递增,使用索引来访问元素:[索引]
>>> "hello"[1] ‘e‘
使用负数索引或从右边=往左数,-1是最右边的元素位置
>>> "hello"[-1] ‘o‘
切片:
使用索引可以进行切片操作,访问特定范围内的元素,使用两个索引来指定范围,冒号隔开:[起始位置: 结束位置]
注意:起始索引是包含该元素的,结束索引是不包含的
>>> s = "www.python.org" >>> s[4: 10] ‘python‘
注意:如果第一个索引指定的元素位于第二个索引指定的元素后面,结果为空序列
>>> s = "www.python.org" >>> s[4: 2] ‘‘ >>> s[-2: 2] ‘‘
切片结束与末尾,可以省略第二个索引
>>> s = "www.python.org" >>> s[8:] ‘on.org‘
切片从头开始同理
>>> s = "www.python.org" >>> s[:10] ‘www.python‘
复制整个序列可已将索引省略
>>> s = "www.python.org" >>> s[:] ‘www.python.org‘
指定步长:
执行切片操作还有一个参数是步长,在不指定的情况下步长为1,索引会按位置从一个元素到下一个元素
# 步长为1,和普通切片一样 >>> s = "www.python.org" >>> s[:] ‘www.python.org‘ >>> s[::1] ‘www.python.org‘ # 步长为2,每隔一个元素取一次 >>> s = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> s[::2] [1, 3, 5, 7, 9] # 步长不能为0,但是可以为负数,从右往左取 >>> s = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> s[::-3] [9, 6, 3] # 步长为负数时,是从右往左取,即起始位置在右边,所以第一个索引必须必第二个索引大 >>> s[2:5:-3] [] >>> s[8:3:-3] [9, 6]
相加:
使用加法拼接相同类型序列
>>> [1, 2, 3] + [4, 5] [1, 2, 3, 4, 5] >>> "hello" + "world" ‘helloworld‘
相乘:
序列和数n相乘,重复这个序列n次来常见一个新序列
>>> "hello" * 3 ‘hellohellohello‘ >>> [66] * 5 [66, 66, 66, 66, 66]
Nome用来表示什么都没有,如果想创建一个长度为8,但是什么都不包含的列表,可以使用乘法来初始化
>>> [None] * 8 [None, None, None, None, None, None, None, None]
成员资格:in、not in
检查特定的值是否包含在序列中,返回布尔值:True或者False
>>> s = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> 1 in s True >>> "a" not in s True >>> >>> a in "hello" False
长度、最小值、最大值:
使用内置函数len、min、max,len返回序列包含的元素个数,min返回最小值,max返回最大值
实际上min和max的实参是数,并不是序列
>>> s = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> len(s) 9 >>> min(s) 1 >>> max(s) 9 >>> min(1, 2, 5) 1 >>> max(3, 6, 4) 6
迭代:后续。
原文地址:https://www.cnblogs.com/Mr-chenshuai/p/10012745.html