Python数据结构之序列及其操作
Posted romacle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据结构之序列及其操作相关的知识,希望对你有一定的参考价值。
数据结构是计算机存储,组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
在Python中,最基本的数据结构为序列(sequence)。序列中的每个元素都有编号:从0开始递增,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。最后一个元素的位置为-1。
Python包含6种内建的序列:字符串,Unicode字符串,列表,元组,buffer对象和xrang对象。
字符串
与数字一样,字符串也是值,用单引号或双引号括起来。‘Hello world!‘ 或 "Hello world!"
列表
列表由一系列按特定顺序排列的元素组成,用[]括起来。列表中的元素可以是数字,字符串,列表,元组,字典,集合。列表不同于元组和字符串的地方:列表是可变的
元组
即不可变列表,用()括起来。
有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。另外,Python还提供了一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。(迭代)
序列通用操作
1.索引
#字符串 first = ‘hello,world!‘ print(first[0]) print(first[-1]) >>>h >>>-1 #列表 colour = [‘red‘,‘white‘,‘blue‘,‘black‘] print(colour[0]) print(colour[-1]) >>>red >>>black #元组 colour = (‘red‘,‘white‘,‘blue‘,‘black‘) print(colour[0]) print(colour[-1]) >>>red >>>black
2.切片
除使用索引来访问单个元素外,还可以使用切片来访问特定范围内的元素:使用两个索引,用冒号分隔。
#字符串 numbers= ‘123456789‘ print(numbers[0:3]) >>>123 #列表 numbers= [1,2,3,4,5,6,7,8,9] print(numbers[0:3]) >>>[1, 2, 3] #元组 numbers= (1,2,3,4,5,6,7,8,9) print(numbers[0:3]) >>>(1, 2, 3)
#使用来个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。
2.1切片的简写
当想要访问序列中最后几个元素而又不知道其索引位置时,可以使用负数索引。以列表为例。
numbers= [1,2,3,4,5,6,7,8,9] print(numbers[-3:-1]) print(numbers[-3:]) >>>[7, 8] >>>[7, 8, 9]
#第二个索引指定的元素不包含在切片内。
如果切片始于序列开头,可省略第一个索引。
numbers= [1,2,3,4,5,6,7,8,9] print(numbers[:3]) >>>[1, 2, 3]
切片位于序列中间元素时
#序列中第3个元素到第4个元素 numbers= [1,2,3,4,5,6,7,8,9] print(numbers[2:5]) >>>[3, 4, 5] #序列中第3个元素到倒数第4个元素 numbers= [1,2,3,4,5,6,7,8,9] print(numbers[2:-3]) >>>[3, 4, 5,6]
2.2步长
普通切片中,步长为1,意味着从一个元素移到下一个元素,指定步长时,将从起点和终点之间按照指定步长提取元素。
numbers= [1,2,3,4,5,6,7,8,9] print(numbers[0:8:2]) #步长为2 可以简写为print(numbers[::2]) print(numbers[0:8:3]) #步长为3 可以简写为print(numbers[::3]) >>>[1, 3, 5, 7] >>>[1, 4, 7]
步长不能为0,但可以为负数,即从右向左提取元素。
numbers= [1,2,3,4,5,6,7,8,9] print(numbers[8:0:-2]) >>>[9, 7, 5, 3]
#切片也必须从右到左
3.序列相加
a = ‘hello‘ b = ‘world‘ print(a+b) >>>helloworld x = [1,2,3] y = [4,5,6] print(x+y) >>>[1, 2, 3, 4, 5, 6]
#不同类型的序列不能相加
4.乘法
a = ‘hello‘ print(a*5) >>> hellohellohellohellohello
5.成员资格
a = ‘hello,world!‘ print(‘h‘ in a) print(‘x‘ in a) >>>True >>>False
只有两种返回结果:True和False
6.长度,最小值和最大值
内置函数len返回序列包含的元素个数,min和max分别返回序列中最小和最大的元素。以列表为例。、
numbers = [45,8,126,78,3,17,5] print(len(numbers)) #长度 print(min(numbers)) #最小值 print(max(numbers)) #最大值 >>>7 >>>3 >>>126
以上是关于Python数据结构之序列及其操作的主要内容,如果未能解决你的问题,请参考以下文章