Python字符串反转,截取,连接,reverse()、reversed()方法的应用

334 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

本文主要利用leetcode上的一道题来解剖其涉及到的Python字符串反转,截取,连接,reverse()、reversed()方法的应用。

2000. 反转单词前缀

给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。

例如,如果 word = "abcdefd" 且 ch = "d" ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 "dcbaefd" 。 返回 结果字符串 。 示例 1:

输入:word = "abcdefd", ch = "d"
输出:"dcbaefd"
解释:"d" 第一次出现在下标 3 。 
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "dcbaefd"

示例 2:

输入:word = "xyxzxe", ch = "z"
输出:"zxyxxe"
解释:"z" 第一次也是唯一一次出现是在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "zxyxxe"

示例 3:

输入:word = "abcd", ch = "z"
输出:"abcd"
解释:"z" 不存在于 word 中。
无需执行反转操作,结果字符串是 "abcd"

题解: 关键:字符串截取,反转,拼接 解1:

class Solution:
    def reversePrefix(self, word: str, ch: str) -> str:
        return word if (idx:=word.find(ch)) == -1 else word[:idx+1][::-1] + word[idx+1:]

解2:

class Solution:
    def reversePrefix(self, word: str, ch: str) -> str:
        if word.find(ch):
            pos = word.find(ch)
            #示例1:''.join(reversed(word[0:pos+1])):dcba,
            #word[pos+1:len(word)]:efd
            return ''.join(reversed(word[0:pos+1])) + word[pos+1:len(word)]
        else:
            return word

Python reverse()方法

是python中列表的一个内置方法(也就是说,在字典,字符串或者元组中,是没有这个内置方法的),用于列表中数据的反转。

list1 = [1, 2, 3, 4, 5, 6]
list1.reverse()#这一步返回的是None,所以需要通过打印被作用的列表list1才可以查看出具体的效果。
print(list1)#[6, 5, 4, 3, 2, 1]

Python reversed()方法

在经过reversed()的作用之后,返回的是一个把序列值经过反转之后的迭代器,所以,需要通过遍历,或者List,或者next()等方法,获取作用后的值。

字符串的反转:

ss = "qwer1234"
print(''.join(reversed(ss)))
#打印结果:4321rewq

列表的反转:

bb = [1,3,5,7]
print(list(reversed(bb)))
#打印结果:[7, 5, 3, 1]

元组的反转:

aa = (1, 2, 3)
print(tuple(reversed(aa)))
#打印结果:(3, 2, 1)

Python切片[::-1]可用于翻转字符串

n = 12345
print(str(n)[::-1])#54321
var1 = 'Hello World!'
print(var1[:4][::-1])#lleH
print(var1[::-1])#!dlroW olleH

Python 截取字符串

Python 访问子字符串,可以使用方括号来截取字符串,如下实例:

var1 = 'Hello World!'
var2 = "Python"
print ("var1[0]: ", var1[0])#var1[0]:  H
print ("var2[1:5]: ", var2[1:5])#var2[1:5]:  ytho

Python 字符串连接

var1 = 'Hello World!'
print (var1[:6] + 'Zagiee!')#Hello Zagiee!

小tips

print(int('00982'))//982