python的5种数据结构,方法很多记不住吗?全在这里了.

序列是Python中最基本的数据结构 。所谓的序列,指的是可以连续存放多个值的内存空间,序列中的每个元素都会有一个数字,即它的位置或索引 。通过这个索引就能找到序列中的元素。
在python的序列中,包括列表,字符串,元组,集合和字典 。序列支持几个通用的操作,就是可以索引、切片、相加、相乘、检查成员,需要注意的是,集合和字典不支持索引,切片、相加和相乘操作 。

python的5种数据结构,方法很多记不住吗?全在这里了.

文章插图
 
序列中的通用操作
  • 通过索引获取元素
就以列表为例,访问列表的元素可以通过下标(也叫索引),默认下标从0开始递增,也就是从左往右递增 。当然也可以从右向左计数,这样的话最后一个元素就是从-1开始,依次类推 。这也是序列中的一个特性。
语法:    seq[x]#seq可以是列表,元组,字符串实例:lst = ['red', 10, 12.3]    print("第一个元素:",lst[0])print("第三个元素:",lst[-1]) 结果:#输出:red    #输出12.3以下是列表中通过下标访问元素的示意图 。
  • 通过切片获取元素 。
切片操作相当于是在列表中访问一定范围的元素,通过切片操作,其实相当于返回了一个新序列,这个序列是原来序列的子集 。
语法:seq[start:end:step]实例:lst5 = ['red','green','blue','black','gold','orange']print("获取第2-5个元素:",lst5[1:5])#有start,end,没有step,默认为1print("获取第2,4,6个元素:",lst5[1:6:2])#遵循左闭右开原则,不包括第7个元素print("获取第1,3,5个元素:",lst5[::2])#步长为2print("获取第3个及后面的元素:",lst5[2:])print("将列表翻转:",lst5[::-1])结果:获取第2-5个元素: ['green', 'blue', 'black', 'gold']获取第2,4,6个元素: ['green', 'black', 'orange']获取第1,3,5个元素: ['red', 'blue', 'gold']获取第3个及后面的元素: ['blue', 'black', 'gold', 'orange']将列表翻转: ['orange', 'gold', 'black', 'blue', 'green', 'red']说明:start:表示切片的开始索引位置(包括该位置),也可以不指定,默认为0,也就是从序列的开头进行切片;end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为列表的长度,注意end不能超过列表的长度,否则会报错;step:表示切片的步长,如果 step 的值大于 1,则在进行切片操作时,会“跳跃式”的取元素 。如果省略设置 step 的值,step的值就为1,则最后一个冒号就可以省略 。
  • 序列进行相加,相乘
序列还支持序列的相加,相乘操作,以下就以两个两个列表的相加操作为例 。
语法:seq = seq1 + seq2实例:a_list = ['abc']b_list = ['xyz']c_list = a_list + b_list    print("两个列表相加后产生的新列表:",c_list)print("列表a_list乘3后产生的新列表:",a_list*3)结果:两个列表相加后产生的新列表: ['abc', 'xyz']两个列表相乘后产生的新列表: ['abc', 'abc', 'abc']
  • 检查序列中的元素
检查序列是否存在某个元素可以in关键字 ,同理也可以not in检查元素不在序列中,他们返回的结果是boolean值 。
同样以列表为例
语法:元素 (not)in seq实例lst8 = ['red', 'yellow', 'cream', 'blue', 'gunmetal']print("检查列表lst8中是否包含blue元素:",'blue' in lst8)print("检查列表lst8中是否不包含black元素:",'blac' not in lst8)结果:检查列表lst8中是否包含blue元素: True检查列表lst8中是否不包含black元素: True
  • 序列的方法列表
序列除了以上的操作外,还支持如下的方法:
同样以list为例:
lst=['orange', 'gold', 'black']
python的5种数据结构,方法很多记不住吗?全在这里了.

文章插图
 
字符串字符串是python中最常见的一种数据类型,几乎只要开发程序,就离不开对字符串的处理。字符串的定义非常简单,就是使用单引号或双引号引起来就可以了。
  • 字符串格式化
使用%进行字符串格式化
前面学习的字符串,一旦声明,内容就不会变了 。虽然也可以对字符串进行操作来改变字符串的值,但其实变为一个新的字符串了 。那么有这样一种场景,声明的字符串中只有一部分会随着场景会发生变化。比如说,我要定义个“you name is xxx”,那么这个xxx是根据询问的人的不同,给出的答案肯定也不会 。那么这样的场景几乎就会用到字符串格式化 。


推荐阅读