Python reversed函数及用法及截取字符串(字符串切片)方法详解

 Python reversed函数及用法

有些时候,程序需要进行反向遍历,此时可通过 reversed() 函数,该函数可接收各种序列(元组、列表、区间等)参数,然后返回一个“反序排列”的法代器,该函数对参数本身不会产生任何影响。

在交互式解释器中,测试该函数的过程如下:

>>> a = range(10)
>>> [x for x in reversed(a)]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

从上面代码可以看出,通过 reversed() 函数得到了 range(10) 的反转序列;但如果再次访问 a,将会看到 a 并没有发生改变:

>>> a
range(0, 10)

reversed() 当然也可以对列表、元组进行反转。例如如下测试代码:

>>> b = ['a', 'fkit', 20, 3.4, 50]
>>> [x for x in reversed(b)]
[50, 3.4, 20, 'fkit', 'a']

前面提到过,str 其实也是序列,因此也可通过该函数实现在不影响字符串本身的前提下,对字符串进行反序遍历。例如如下测试代码:

>>> c = 'Hello,Charlie'
>>> [x for x in reversed(c)]
['e', 'i', 'l', 'r', 'a', 'h', 'C', ',', 'o', 'l', 'l', 'e', 'H']

 

 

 Python截取字符串(字符串切片)方法详解

字符串本质上就是由多个字符组成的,因此程序允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。

Python字符串直接在方括号([])中使用索引即可获取对应的字符,字符串中第一个字符的索引为 0、第二个字符的索引为 1,后面各字符依此类推。此外,Python 也允许从后面开始计算索引,最后一个字符的索引为 -1,倒数第二个字符的索引为 -2······依此类推。

下面代码示范了根据索引获取字符串中的字符:

s = 'crazyit.org is very good'
# 获取s中索引2处的字符
print(s[2]) # 输出a
# 获取s中从右边开始,索引4处的字符
print(s[-4]) # 输出g

除可获取单个字符之外,也可在方括号中使用范围来获取字符串的中间“一段”(被称为子串)。例如如下代码:

# 获取s中从索引3处到索引5处(不包含)的子串
print(s[3: 5]) # 输出zy
# 获取s中从索引3处到倒数第5个字符的子串
print(s[3: -5]) # 输出zyit.org is very
# 获取s中从倒数第6个字符到倒数第3个字符的子串
print(s[-6: -3]) # 输出y g

上面用法还允许省略起始索引或结束索引。如果省略起始索引,相当于从字符串开始处开始截取;如果省略结束索引,相当于截取到字符串的结束处。例如如下代码:

# 获取s中从索引5处到结束的子串
print(s[5: ]) # 输出it.org is very good
# 获取s中从倒数第6个字符到结束的子串
print(s[-6: ]) # 输出y good
# 获取s中从开始到索引5处的子串
print(s[: 5]) # 输出crazy
# 获取s中从开始到倒数第6个字符的子串
print(s[: -6]) #输出crazyit.org is ver

此外,Python 字符串还支持用 in 运算符判断是否包含某个子串。例如如下代码:

# 判断s是否包含'very'子串
print('very' in s) # True
print('fkit' in s) # False

如果要获取字符串的长度,则可调用 Python 内置的 len() 函数。例如如下代码:

# 输出s的长度
print(len(s)) # 24
# 输出'test'的长度
print(len('test')) # 4

还可使用全局内置的 min() 和 max() 函数获取字符串中最小字符和字符。例如如下代码:

# 输出s字符串中字符
print(max(s)) # z
# 输出s字符串中字符
print(min(s)) # 空格

 

  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hakesashou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值