python___容器类型的数据___序列

python内置的数据类型如序列(列表、元组等)、集合和字典等可以容纳多项数据,我们称她们为容器类型的数据

集合、序列、字典、列表、元组

======================

序列

序列(sequence)是一种可迭代的,元素有序的容器类型的数据

序列包括列表(list),字符串(str),元组(tuple)和字节序列(bytes)等

序列的索引操作

序列中的元素都是有序的,每个元素都带有序号,序号叫做索引,索引有正值索引和负值索引之分

正值索引:第一个元素的索引是0,从左往右以此增加

负值索引:最后一个元素的索引是-1,从右往左递减

如何访问序列中的元素?

下标运算符:跟在容器数据后的一对方括号\[\],在这对方括号之间有参数,对于序列类型的数据,

该参数就是元素类型的索引

a='hello',-----a0=h

python 复制代码
a="hello"
print(a[0])#h
print(max(a))#o
print(min(a))#e
print(len(a))#5

此处索引最大值为4,若a5超出索引范围,则会发生IndexError错误

max()函数用于返回序列的最大值,对于数字序列,返回最大值,对于字符串,返回ASCII或Unicode值最大的字符

min()函数,用于返回序列的最小值,对于数字序列,返回最小值,对于字符串,返回ASCII或Unicode值最大的字符

len()函数用于获取序列的长度,注意是序列长度不是序列范围最大值,如例所示,序列范围以0开始,以4结尾,但长度是5

==========================

加+与乘*操作

*:'six'*2-------'sixsix'

+:'six'+'seven'--------'sixseven'

python 复制代码
a="six"
b="seven"
print(a*3)#sixsixsix
print(a+b)#sixseven

============================

切片操作

对序列进行切片(Slicing)操作就是从序列中切分出小的子序列

切片运算符的语法:start:end:step

start:开始索引

end:结束索引

step:步长(切片时获取元素的间隔,既可以是正整数,也可以是负整数)

!!!切下的子序列包含start位置的元素,但不包含end位置的元素,start和end都可以省略

python 复制代码
 #====切片操作====
a="zxcvbnm"
print(a[1:3]) #xc 不包含3

print(a[:3])#zxc 不包含3
#省略了开始索引,默认索引开始是0,所以a[:3]和a[0:3]一样
print(a[0:3])#zxc 不包含3

print(a[0:])#zxcvbnm 
#忽略了结束索引,默认结束索引是序列的长度,即7,所以a[1:]和a[1:7]的切片结果是一样的
print(a[0:7])#zxcvbnm 
print(a[:])#zxcvbnm 
#省略了开始索引和结束索引,a[:]和a[0:7]切片结果一样

print(a[1:-1])#xcvbn
#1是正值索引,表示字符串的第二个元素;-1是负值索引,表示字符串的最后一个元素

print(a[0:3:2])#zc
#开始索引为0,结束索引为3,步长为3

print(a[::-1])#mnbvcxz
#步长为负值时,从右往左获取元素,所以[::-1]的切片结果是原始序列中元素的倒置

print(a[0:3:-1]) #

a1:3---开始索引为1,结束索引为2,省略步长(默认值为1)

print(a0:3:2)画出相关实例图

python 复制代码
索引:   0   1   2   3
字符:   z   x   c   v
        ↑       ↑
      start=0   start+step=2
      ↓          ↓
      取 z       取 c
      
结果:zc

print(a1:3:-1)

start=0,end=3,step=-1,步长是负值,从右往左取

从索引0开始,往左取,但end=3在start的右边

方向冲突:start在end左边,但步长是负的要往左走---永远走不到end---结果为空

python 复制代码
索引:   0   1   2   3   4   5   6
字符:   z   x   c   v   b   n   m
        ↑               ↑
      start=0         end=3(不包含)
      
步长 = -1(往左走)→ 从 0 往左,没有元素 → 空

从右往左取值

python 复制代码
x='xcvbnm'
print(a[5:0:-1)#输出:mnbvc
#start:索引5:m包含在内
#end:索引0:x不包含在内
#步长:-1----从右往左取数

===================成员测试

成员测试运算符:in , not in

in:用于测试是否包含某个元素

not in:测试是否不包含某个元素

python 复制代码
#=======测试
a='qwert'
if 'e' in a:
    print("True")
else:
    print("False")

#True

b='asdf'
if 'z' not in b:
    print("True")
else:
    print("False")

#True
相关推荐
2603_965148118 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
jufeng130710 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 8 篇】
python·ai agent·配置系统
circuitsosk10 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
2601_9563198811 小时前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
知无不研11 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
过期的秋刀鱼!11 小时前
LangChain-D1-模型的工作流程
人工智能·python·langchain
萤火工厂目视化设计11 小时前
智能制造与企业文化目视化浪潮下:中小工厂的机遇与挑战
python·制造
cfm_291411 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
DeepVisionary12 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
C++ 老炮儿的技术栈13 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐