码迷,mamicode.com
首页 > 编程语言 > 详细

Python数据结构之序列及其操作

时间:2019-04-30 01:31:12      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:成员资格   最大的   col   组织   buffer   不可变   从右到左   返回结果   操作   

  数据结构是计算机存储,组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

  在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数据结构之序列及其操作

标签:成员资格   最大的   col   组织   buffer   不可变   从右到左   返回结果   操作   

原文地址:https://www.cnblogs.com/romacle/p/10793436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!