ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lesson 2-1 (数据结构,序列通用的操作)

2019-02-09 12:38:11  阅读:216  来源: 互联网

标签:seq 索引 2.2 序列 world Lesson 数据结构 Hello


2.0 数据结构

--- 数据结构是以某种方式组合起来的数据元素集合。

--- python的常见的数据结构

 

2.1 序列(sequence)

--- 序列中的每个元素都有编号,即索引(也称为下标)。

--- 第一个位置索引为0,第二为1,依次类推。也可用负索引,末尾位置为-1,倒数第二为-2,依次类推。

--- 元组是一种特殊的序列,类似于列表,但是不能修改。

                                

2.2 通用的序列操作

2.2.1 索引(indexing)

--- 可通过索引来获取序列中该位置的元素,索引只能是整数,不能是浮点数。

--- 序列从左往右,索引由0开始递增;序列从右往左,索引由-1开始递减。

 1 >>> seq = "Hello world!"
 2 >>> seq[0]
 3 'H'
 4 >>> seq[7]
 5 'o'
 6 >>> seq[-1]
 7 '!'
 8 >>> seq[-3]
 9 'l'
10 >>> 

--- 多重序列中的索引表示法

1 >>> seq = [["H", "e", "l", "l", "o"], ["w", "o", "r", "l", "d"]]
2 >>> seq[0]
3 ['H', 'e', 'l', 'l', 'o']
4 >>> seq[0][1]
5 'e'
6 >>> seq[-1][-3]
7 'r'
8 >>> 

 

2.2.2 切片(slicing)

--- 使用索引可以访问序列中的单个元素,使用切片可以访问序列中特定范围内的元素。

--- 切片表示法:[ A : B : C ]   ,其中,A表示切片开始处的索引(包括),B表示切片结束处的索引(不包括),C表示切片的步长(可省略,默认为1,不能为0,但可以为负数)。

--- 即A和B是两个索引,用来指定切片的边界,并遵循左闭右开原则。

 1 >>> seq = "Hello world!"
 2 >>> seq[1:7]
 3 'ello w'
 4 >>> seq[1:7:2]
 5 'el '
 6 >>> seq[-3:-1]
 7 'ld'
 8 >>> seq[-10:-1:3]
 9 'l r'
10 >>> 

--- 当步长为默认或正数时,A索引必须比B索引位于序列的左边,否则访问到的是空序列。步长为负数时,则正好相反。

>>> seq = "Hello world!"
>>> seq[7:2]
''
>>> seq[-1:-5]
''
>>> 

--- 省略表示法。如果从序列最左边开始,则A索引可省略;如果到序列最末尾结束,则B索引可省略;如果A、B索引都省略,则表示访问整个序列。

1 >>> seq = "Hello world!"
2 >>> seq[ :7]
3 'Hello w'
4 >>> seq[-7: ]
5 ' world!'
6 >>> seq[ : ]
7 'Hello world!'
8 >>> 

--- 步长为负数时,表示从序列的右边开始往左访问序列中的元素。A、B索引为空,步长为-1,则表示颠倒顺序访问序列中的元素。

 1 >>> seq = "Hello world!"
 2 >>> seq[7:1:-1]
 3 'ow oll'
 4 >>> seq[7:1:-2]
 5 'o l'
 6 >>> seq[-2:-8:-1]
 7 'dlrow '
 8 >>> seq[-2:-8:-2]
 9 'drw'
10 >>> seq[ : :-1]
11 '!dlrow olleH'
12 >>> 

 

2.2.3 序列相加

--- 可使用加法运算符拼接序列

--- 不能拼接不同类型的序列

 1 >>> seq_1 = "Hello "
 2 >>> seq_2 = "world!"
 3 >>> seq = seq_1 + seq_2
 4 >>> seq
 5 'Hello world!'
 6 >>> seq_1 = "Hello "
 7 >>> seq_2 = [1, 2, 3]
 8 >>> seq = seq_1 + seq_2
 9 Traceback (most recent call last):
10   File "<stdin>", line 1, in <module>
11 TypeError: must be str, not list
12 >>> 

 

2.2.4 序列乘法(复制)

--- 序列与整数n相乘时,将复制这个序列n次来得到一个新序列,从而实现序列的复制。

1 >>> seq = "Hello " * 5
2 >>> seq
3 'Hello Hello Hello Hello Hello '
4 >>> 

 

2.2.5 成员资格

--- 检查特定值是否包含在序列中,使用 in 和 not in 运算符。检查结果返回布尔值True和False。

1 >>> seq = "Hello world!"
2 >>> "e" in seq
3 True
4 >>> "h" in seq
5 False
6 >>> "h" not in seq
7 True
8 >>> 

 

2.2.6 序列长度、最小值和最大值

--- 可通过内置函数len、min和max得出序列相对应的长度、最小值和最大值。最小、最大值比较依据元素在ASCII码表中的ASCII值。

 1 >>> seq = "Hello world!"
 2 >>> len(seq)
 3 12
 4 >>> min(seq)
 5 ' '
 6 >>> max(seq)
 7 'w'
 8 >>> seq = [1, 2, 3, -4]
 9 >>> min(seq)
10 -4
11 >>> max(seq)
12 3
13 >>> 

 

标签:seq,索引,2.2,序列,world,Lesson,数据结构,Hello
来源: https://www.cnblogs.com/jlufcs/p/10357319.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有