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对象. ...
随机推荐
- python3 整数类型PyLongObject 和PyObject源码分析
python3 整数类型PyLongObject 和PyObject源码分析 一 测试环境介绍和准备 测试环境: 操作系统:windows10 Python版本:3.7.0 下载地址 VS版本:vs2 ...
- 洛谷P3380 二逼平衡树
线段树+平衡树 我!又!被!卡!常!了! 以前的splay偷懒的删除找前驱后继的办法被卡了QAQ 放一个在洛谷开O2才能过的代码..我太菜了.. #include <bits/stdc++.h& ...
- flutter - 01 基础介绍以及ListView
这篇主要讲flutter最基本的操作.我们从一个实例入手,先不需要知道它里面的每一行是什么意思,我会慢慢说. main.dart import 'package:flutter/material.da ...
- NOIP 2019游记
Update on 2019.4.20 禁赛预定
- Docke--Dockerfile指令介绍
Dockerfile 构建镜像常用指令 Dockerfile 是一个文本文件,其内包含了一条条的指定(Instruction),每一条指令构建一层,因此每一条指定的内容,就是描述该层应当如何构建. 通 ...
- 在SpringBoot项目中添加logback的MDC
在SpringBoot项目中添加logback的MDC 先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web ...
- python: c_char_p指向的bitmap图像数据,通过c_char_Array最终赋值给PIL的Image对象
def GetCurrentImage(self): ok, bitmap, buff_len = self.GetCurrentFrameBitmap() #调用C函数,返回位图数据的指针. bit ...
- WAMP中的MySQL设置用户、密码 及 phpmyadmin的配置
打开localhost和phpadmin时注意是否改过端口(这两个的默认端口是80) 初始用户名:root 密码为空 改密后使用新密码. WAMP中的 mysql设置密码(默认密码为空)及 php ...
- 2018-2019-2 20165232《网络对抗技术》Exp1 缓冲区溢出实验
2018-2019-2 20165232<网络对抗技术>Exp1 缓冲区溢出实验 实验点1:逆向及Bof基础实践 实践任务 用一个pwn1文件. 该程序正常执行流程是:main调用foo函 ...
- 分布式协调服务Zookeeper集群之ACL篇
分布式协调服务Zookeeper集群之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zookeeper ACL相关知识概览 1>.zookeeper官方文档(h ...