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= ' 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数据结构之序列及其操作的更多相关文章
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
一.概述:Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组:而当序列不够用时就出现了映射:字典.列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改.列表和元 ...
- python数据结构(一)------序列
数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合:在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序列号--即元素的位置,也称为索引. p ...
- Python中的序列操作
官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-range 序列简介 序列是指按照位置 ...
- 2017.7.12 Python的6种内建序列及操作
数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构. 在Python中,最基本的数据结构是序列(sequence).序列中的 ...
- 《python基础教程》笔记之 序列通用操作
索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...
- Python数据结构和类型--解压序列赋值多个变量
Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...
- python中序列的操作
Python中的序列操作 可变对象:列表.字典.集合 不可变对象:数值.字符串.元组.forzenset 1.序列的通用操作 (1)测试元素是否存在 x in S和x not in S,返回True或 ...
- python 列表与元组的操作简介
上一篇:Python 序列通用操作介绍 列表 列表是可变的(mutable)--可以改变列表的内容,这不同于字符串和元组,字符串和元组都是不可变的.接下来讨论一下列表所提供的方法. list函数 可以 ...
- Python基础:序列(列表、元组)
一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...
随机推荐
- 用 Open Live Writer 来写 cnblog.com 博客
Open Live Writer来源 Windows Live Writer在2012年就停止了更新,Open Live Writer是由Windows Live WriterWriter更名而来,是 ...
- android安装前期遇到的问题
1.安装的eclipse与对应的java版本位数要一致,要么32位,要么64位. 2.关于新版ADT创建项目时出现appcompat_v7的问题 更新ADT至22.6.0版本之后,创建新的安装项目,会 ...
- CodeForces 518A Vitaly and Strings (水题,字符串)
题意:给定两个相同长度的字符串,让你找出一个字符串,字典序在两都之间. 析:这个题当时WA了好多次,后来才发现是这么水,我们只要把 s 串加上,然后和算数一样,该进位进位,然后再和 t 比较就行. 代 ...
- view是视图层+action是控制层+service是业务层+dao是数据访问层。
- PowerDesigner工具建表步骤
以商场VIP系统中的表为例 先建立管理员用户表 1.双击打开PowerDesigner工具,点File 选择 New Model 打开如下图,选择标红部分,点击OK 2点击选择标红部位Entity ...
- I-Keyboard
SPOJ Problem Set (classical) 14. I-Keyboard Problem code: IKEYB Most of you have probably tried to t ...
- Android-MediaPlayer-音频播放-普通准备
MediaPlayer是Android设计的媒体播放器,不仅仅可以播放音频文件,还可以播放视频文件 播放:Audio(音频,.mp3)相关 播放:Video(视频,.mp4)相关 以下图,是Andro ...
- The Scope Chain
JavaScript is a lexically scoped language: the scope of variable can be thought of as the set of sou ...
- TSQL--如何突破PRINT的8000大限
相信很多DBA都喜欢干的一件事就是拼SQL语句,我也不例外,但是PRINT只能打印4000的Unicode string或8000的Non-unicode string, 这个蛋疼的限制会导致过长的s ...
- 购买小米成功 散分mhn
之前,我们都没办法解决近来的寡言,面对越来越少的语言,只能是憋得气闷.却没想后来这么一件事可以解开那个尴尬. 前两天晚上,他被我一次次闪躲去看小说伤害,难受,却还是不想和我争吵什么.后来,偶然的机会让 ...