【Python】语法基础---7、序列结构

1.7 序列结构

可变对象和与可变对象

Python中内置数据类型主要有三大类:

  • 数字:整型、浮点型

  • 序列:字符串、列表、元组、集合

  • 映射:字典

按照是否可以原地修改分为两大类:

  • 不可变对象(数字,字符串,元组,不可变集合)

    不可变的分类中没有哪个对象类型支持原地修改,但可以创建新的对象并将结果赋予变量

  • 可变对象(列表,字典,可变集合)

    相反,可变的类型总是可以通过相关的操作进行原处修改,而不需要创建新的数据对象

序列的通用操作

索引,切片,相加,相乘,迭代和成员资格检查

索引操作

索引中的所有元素都有编号(角标),角标从0开始计数,当然在Python当中,也可以使用负角标来访问元素,所有最后一个元素的角标-1(倒数第一个)

>>> word = "hello"
>>> word[0]
'h'
>>> word[2]
'l'
>>> word[-1]
'o'
>>> word[-5]
'h'
>>> word[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

对于序列的字面量,可以直接用角标操作,而不需要变量

>>> "hello"[3]
'l'
>>> "hello"[-1]
'o'

切片操作

索引是一次去一个数据,切片是一次取一片数据,要定开始和结尾,包括步长(默认为1)

>>> word = "12345678"
>>> word[0:3]
'123'
>>> word[-3:-1]
'67'

不管是正索引,还是负索引,必须要保证顺序

>>> word[1:8:2]
'2468'
>>> word[-6:-2:3]
'36'
>>> word[7:1:-2]
'864'
>>> word[-1:-5:-1]
'8765'
>>> word[-1:-5:1]
''
>>> word[:]
'12345678'
>>> word[2:]
'345678'
>>> word[:5]
'12345'
>>> word[-5:]
'45678'
>>> word[-3::-1]
'654321'

步长是正数,开始~结尾 递增

步长是负数,开始~结尾 递减

>>> text = "我爱你"
>>> text = text[::-1]
>>> text
'你爱我'
>>> text = text[-1:-4:-1]
>>> text
'我爱你'

相加操作

指的是两个序列合并,会产生新的序列对象,不会改变原先序列的值

>>> s1 = "abc"
>>> s2 = "ABC"
>>> s1 + s2
'abcABC'
>>> s1
'abc'
>>> s2
'ABC'

相加只能是在同类型序列之间进行

相乘操作

将序列与数字x相乘,将重复这个序列x次创建一个新的序列

>>> s1
'abc'
>>> s3 = s1 * 3
>>> s3
'abcabcabc'

迭代操作

可以在for循环中迭代序列中的每一元素,或者迭代角标来获取元素

>>> s1
'abc'
>>> for i in s1:
...     print(i)
...
a
b
c
>>> for i in range(len(s1)):
...     print(s1[i])
...
a
b
c
​
>>> word[0] = '9'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

成员资格检查操作

就是验证一个数据元素是否存在于当前序列当中

>>> '8' in word
True
>>> 8 in word
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'in <string>' requires string as left operand, not int
​
>>> '10' not in word
True
>>> '10' in word
False
>>> 5 in range(0,10)

字符串

不可变对象,一个有序的字符集合,用于存储和表现基本文本信息

字符串不允许原地修改值,字符串的长度大小一旦定义则不能修改

如果真想去修改字符串的话,只能创建一个该字符串的副本,副本的内容就是修改过后的内容

测试字符串方法:

  • isalnum():验证是否只包含数字和字母

  • isalpha():验证是否只包含字母

  • isdigit():验证是否只包含数字

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值