Lesson 2-1 (数据结构,序列通用的操作)
2.0 数据结构
--- 数据结构是以某种方式组合起来的数据元素集合。
--- python的常见的数据结构

2.1 序列(sequence)
--- 序列中的每个元素都有编号,即索引(也称为下标)。
--- 第一个位置索引为0,第二为1,依次类推。也可用负索引,末尾位置为-1,倒数第二为-2,依次类推。
--- 元组是一种特殊的序列,类似于列表,但是不能修改。
2.2 通用的序列操作
2.2.1 索引(indexing)
--- 可通过索引来获取序列中该位置的元素,索引只能是整数,不能是浮点数。
--- 序列从左往右,索引由0开始递增;序列从右往左,索引由-1开始递减。
>>> seq = "Hello world!"
>>> seq[0]
'H'
>>> seq[7]
'o'
>>> seq[-1]
'!'
>>> seq[-3]
'l'
>>>
--- 多重序列中的索引表示法
>>> seq = [["H", "e", "l", "l", "o"], ["w", "o", "r", "l", "d"]]
>>> seq[0]
['H', 'e', 'l', 'l', 'o']
>>> seq[0][1]
'e'
>>> seq[-1][-3]
'r'
>>>
2.2.2 切片(slicing)
--- 使用索引可以访问序列中的单个元素,使用切片可以访问序列中特定范围内的元素。
--- 切片表示法:[ A : B : C ] ,其中,A表示切片开始处的索引(包括),B表示切片结束处的索引(不包括),C表示切片的步长(可省略,默认为1,不能为0,但可以为负数)。
--- 即A和B是两个索引,用来指定切片的边界,并遵循左闭右开原则。
>>> seq = "Hello world!"
>>> seq[1:7]
'ello w'
>>> seq[1:7:2]
'el '
>>> seq[-3:-1]
'ld'
>>> seq[-10:-1:3]
'l r'
>>>
--- 当步长为默认或正数时,A索引必须比B索引位于序列的左边,否则访问到的是空序列。步长为负数时,则正好相反。
>>> seq = "Hello world!"
>>> seq[7:2]
''
>>> seq[-1:-5]
''
>>>
--- 省略表示法。如果从序列最左边开始,则A索引可省略;如果到序列最末尾结束,则B索引可省略;如果A、B索引都省略,则表示访问整个序列。
>>> seq = "Hello world!"
>>> seq[ :7]
'Hello w'
>>> seq[-7: ]
' world!'
>>> seq[ : ]
'Hello world!'
>>>
--- 步长为负数时,表示从序列的右边开始往左访问序列中的元素。A、B索引为空,步长为-1,则表示颠倒顺序访问序列中的元素。
>>> seq = "Hello world!"
>>> seq[7:1:-1]
'ow oll'
>>> seq[7:1:-2]
'o l'
>>> seq[-2:-8:-1]
'dlrow '
>>> seq[-2:-8:-2]
'drw'
>>> seq[ : :-1]
'!dlrow olleH'
>>>
2.2.3 序列相加
--- 可使用加法运算符拼接序列
--- 不能拼接不同类型的序列
>>> seq_1 = "Hello "
>>> seq_2 = "world!"
>>> seq = seq_1 + seq_2
>>> seq
'Hello world!'
>>> seq_1 = "Hello "
>>> seq_2 = [1, 2, 3]
>>> seq = seq_1 + seq_2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not list
>>>
2.2.4 序列乘法(复制)
--- 序列与整数n相乘时,将复制这个序列n次来得到一个新序列,从而实现序列的复制。
>>> seq = "Hello " * 5
>>> seq
'Hello Hello Hello Hello Hello '
>>>
2.2.5 成员资格
--- 检查特定值是否包含在序列中,使用 in 和 not in 运算符。检查结果返回布尔值True和False。
>>> seq = "Hello world!"
>>> "e" in seq
True
>>> "h" in seq
False
>>> "h" not in seq
True
>>>
2.2.6 序列长度、最小值和最大值
--- 可通过内置函数len、min和max得出序列相对应的长度、最小值和最大值。最小、最大值比较依据元素在ASCII码表中的ASCII值。
>>> seq = "Hello world!"
>>> len(seq)
12
>>> min(seq)
' '
>>> max(seq)
'w'
>>> seq = [1, 2, 3, -4]
>>> min(seq)
-4
>>> max(seq)
3
>>>
Lesson 2-1 (数据结构,序列通用的操作)的更多相关文章
- 《python基础教程》笔记之 序列通用操作
索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...
- Python新手学习基础之数据结构-序列1
序列概念 序列,顾名思义就是有顺序的列,在Python里序列类型的数据结构包括字符串,列表和元组.既然都是序列类型,说明他们有很多共通点,他们的每一个元素都可以通过指定的偏移量方式(索引操作)来获得, ...
- 3年Java开发都知道的Redis数据结构和通用命令
Redis的数据结构 Redis支持多种不同的数据结构,包括5种基础数据结构和几种比较复杂的数据,这些数据结构可以满足不同的应用场景. 五种基础数据结构 String:字符串,是构建其他数据结构的基础 ...
- 通用数据库操作类,前端easyui-datagrid,form
实现功能: 左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...
- 三维CAD塑造——基于所述基本数据结构一半欧拉操作模型
三维CAD塑造--基于所述基本数据结构一半欧拉操作模型(elar, B_REP) (欧拉操作 三维CAD建模课程 三维CAD塑造 高曙明老师 渲染框架 brep 带洞 带柄 B_REP brep ...
- python的reduce函数的使用方法详解以及使用案例,相加,相乘(处理一个序列,然后把序列进程合并操作)
1.求列表的数字相加之和,还是之前的习惯,写for循环来实现 num_1=[1,2,3,4,5,6,7,8,9] a=0 for n in num_1: #a=a+n a+=n print (a) C ...
- matlab学习笔记10_5 通用字符串操作和比较函数
一起来学matlab-matlab学习笔记10 10_5 通用字符串操作和比较函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张 ...
- Codeforces Round #304 (Div. 2) B. Soldier and Badges【思维/给你一个序列,每次操作你可以对一个元素加1,问最少经过多少次操作,才能使所有元素互不相同】
B. Soldier and Badges time limit per test 3 seconds memory limit per test 256 megabytes input standa ...
- Python3标准库:string通用字符串操作
1. string:通用字符串操作 string模块在很早的Python版本中就有了.以前这个模块中提供的很多函数已经移植为str对象的方法,不过这个模块仍保留了很多有用的常量和类来处理str对象. ...
随机推荐
- Leetcode 4.28 Tree Easy
1. 101. Symmetric Tree 用递归. class Solution { public boolean isSymmetric(TreeNode root) { if( root == ...
- 「Algospot」龙曲线DRAGON
一道考验思维的好题,顺便总结求第k大问题的常规思路: 传送门:$>here<$ 题意 给出初始串FX,每分形一次所有X替换为X+YF,所有Y替换为FX-Y.问$n$代字符串第$p$位起长度 ...
- 【BZOJ4030】[HEOI2015]小L的白日梦
[BZOJ4030][HEOI2015]小L的白日梦 题面 BZOJ 洛谷 题解 要求的是最小的不开心连续段的期望. 然后发现自己就不会做了. 然后就可以来抄题解啦. 首先来猜性质: 第一个,一定是按 ...
- CF1157C1-Increasing Subsequence (easy version)题解
原题地址 题目大意:
- GraphQL
GraphQL 官方描述: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地 ...
- DataReader转Dictionary数据类型之妙用
datareader转dictionary有很多用处,可以输出表中部分字段转实体字段,以前需要全部字段输出或者再建一个实体模型才行,这样就可以减少数据库的输出量了,特别是某些接口的格式化输出很方便. ...
- C# activex开发中 axwebbrowser控件及 IE浏览器设置
<object type='application/x-vlc-plugin' id='vlc' events='True' codebase='../cab/axvlc.cab' classi ...
- Windows下U盘管理程序
一个操作系统的作业,生成的程序需要使用管理员权限运行,参考了很多网上的代码,如果打开错误,请修改字符集为使用多字节字符集,并且调整为release模式. 作业的内容如下: 任务操作系统API应用体验与 ...
- percona-xtrabackup快速安装及其简单使用
percona-xtrabackup快速安装及其简单使用 cd /opt/环境:centos6.x yum -y install perl-DBIyum -y install perl-DBD-MyS ...
- Hadoop记录-queue使用率
#!/bin/sh ip=xxx port=8088 export HADOOP_HOME=/app/hadoop/bin rmstate1=$($HADOOP_HOME/yarn rmadmin - ...