Python 如何获取字符串的最后N个字符

Python 如何获取字符串的最后N个字符

字符串操作是Python中的重要任务。这可能涉及到对字符串进行切片、获取N个字符等操作。这些是文本预处理中的基本任务,例如在自然语言处理任务、密码和数据安全、字符串理解和编码中等。幸运的是,Python提供了多种方法来执行字符串操作。在本文中,我们将学习如何在Python中获取字符串的最后N个字符。

使用for循环

循环是大多数编程语言中非常常见的表达式。它允许我们迭代可迭代对象、生成一系列的值等等。由于字符串对象是可迭代的,我们可以利用for循环来获取字符串的最后n个字符。由于可迭代对象的索引从0开始,到长度-1结束,最后n个字符的索引从长度-n-1到长度-1。

示例

在下面的示例中,我们创建了一个名为get_last_n_characters的函数,它接受字符串和n作为参数。它是一个非空函数,返回字符串的最后n个字符。在函数下面,我们声明了一个名为last_n_characters的空字符串,并使用range表达式迭代字符串的最后n个字符。我们将字符串的字符添加到空字符串中,并返回最终的字符串。

def get_last_n_characters(text, n):
    last_n_characters=""
    for i in range(len(text) - 1, len(text) - n - 1, -1):
        last_n_characters = text[i] + last_n_characters
    return last_n_characters
text = "Hello, world!"
n = 5
result = get_last_n_characters(text, n)
print(f"The last {n} characters of the String are: {result}")

输出

The last 5 characters of the String are: orld!

使用while循环

while循环是Python中另一个常用的表达式,就像for循环一样。然而,唯一的区别是当我们需要明确运行循环的次数时,我们使用while循环。当满足特定条件时,我们完成循环。

示例

在下面的代码中,我们创建了函数get_last_n_characters。在该函数下面,我们初始化了一个空字符串。我们通过while循环迭代了字符串的最后n个字符,然后在每次迭代中,将字符追加到初始化的字符串中。

def get_last_n_characters(text, n):
    last_n_characters = ""
    index = len(text) - 1
    while n > 0 and index >= 0:
        last_n_characters = text[index] + last_n_characters
        index -= 1
        n -= 1
    return last_n_characters

text = "Hello, world!"
n = 9
result = get_last_n_characters(text, n)
print(f"The last {n} characters of the string are: {result}")

输出

The last 9 characters of the string are: o, world!

使用字符串切片

字符串切片是大多数编程语言中的一个重要概念。在Python中,切片使用索引属性的概念。

语法

string[a:b]

在这里string是String对象的名称。a表示需要开始切片的索引,b表示需要切片到的索引。注意a是闭区间,但b是开区间。如果我们不指定a,默认值将为0。另一方面,如果我们不指定b,则Python将把b的默认值设为n。

示例

在下面的代码中,我们使用String的内置方法来访问最后n个字符。我们使用了String的切片,其中我们传递了−n作为起始索引,以及默认的结束索引。因此根据索引的属性,该方法切割字符串并返回String的最后n个字符。

def get_last_n_characters(string, n):
    last_n_characters = string[-n:]
    return last_n_characters
text = "Hello, world!"
n = 5
result = get_last_n_characters(text, n)
print(f"The last {n} characters of the String are: {result}")

输出

The last 5 characters of the String are orld!

使用切片方法

切片方法允许您创建一个切片对象,您可以用它来提取序列的一部分。我们可以将这个切片对象传递给字符串,返回所需的字符。

语法

slice(-start, end)

在Python中,slice是一个关键字和一个内置的方法。-start表示我们要从索引为-start的字符开始对字符串进行切片。end指的是我们需要执行切片操作的索引。由于我们指定了None,我们将对字符串切片到最后一个字符。

示例

在以下代码中,我们使用了Python的slice方法来获取字符串的最后n个字符。我们将第一个参数(即起始索引)定义为-n,表示我们要从字符串的最后n个字符开始切片。我们将末尾索引的值设置为None,表示我们要切片到最后字符位置。

def get_last_n_characters(string, n):
    last_n_characters = slice(-n, None)
    return string[last_n_characters]

text = "Hello, world!"
n = 5
result = get_last_n_characters(text, n)
print(f"Last {n} characters of the String is: {result}")

输出

Last 5 characters of the String is: orld!

使用join()和reversed()方法

In Python,join()和reversed()方法通常用于操作字符串和序列。

join()方法是一个字符串方法,它将可迭代对象(如列表或元组)的元素连接成一个字符串。它以可迭代对象作为参数,并返回一个使用指定分隔符连接元素的新字符串。

语法

new_string = separator.join(iterable)

在连接元素之后,new_string 是结果字符串。分隔符是在元素之间使用的字符串。iterable 是一个包含要连接的元素的可迭代对象。

reversed() 方法是 Python 中的一个内置函数,它返回一个迭代器,按照倒序的顺序产生序列的元素。它可以用于字符串、列表、元组或任何其他序列类型。

语法

reversed_sequence = reversed(sequence)

在这里,reversed_sequence是一个迭代器对象,包含以相反顺序获取的序列元素。这个序列是从中获取反转元素的序列。

示例

我们在下面的代码中结合了joined、reversed和indexing属性来获取最后n个字符。reverse方法将字符串反转,slicing方法提取前n个字符。再次使用索引方法”[::-1]”将字符串反转。这样恢复了字符的原始顺序。

def get_last_n_characters(string, n):
    last_n_characters = ''.join(reversed(string))[:n][::-1]
    return last_n_characters
text = "Hello, world. I am testing this message"
n = 6
result = get_last_n_characters(text, n)
print(f"Last {n} characters of the String is: {result}")

输出

Last 6 characters of the String is: essage

使用deque和join方法

在Python中,join()方法和collections模块中的deque类通常用于字符串操作和高效管理可迭代对象。

deque类是Python中collections模块的一部分,它提供了双端队列。它允许在队列的两端高效地添加和删除元素。它可以使用可迭代对象初始化,也可以不带任何参数初始化。

语法

collections.deque(iterable, maxlen)

这里的deq是保存元素的deque对象。iterable是可选的,其元素会被添加到deque中。如果没有指定,将创建一个空的deque。maxlen是另一个可选参数,用于指定deque的最大长度。如果超过了这个限制,将会从另一端删除元素。

通过将join()方法和deque类结合起来使用,例如join(deque(string, maxlen=n)),可以在限制结果连接字符串的长度的同时,高效地提取字符串或序列的一部分。

示例

在以下示例中,我们首先从Python的collections库中导入了deque方法。接下来,我们使用deque方法来访问字符串的最后n个字符。我们将字符串和maxlen=n作为参数传递给deque方法。然后,我们使用join方法将字符串连接到空字符串上。

from collections import deque
def get_last_n_characters(string, n):
    last_n_characters = ''.join(deque(string, maxlen=n))
    return last_n_characters
text = "Hello, world. I am testing this message"
n = 11
result = get_last_n_characters(text, n)
print(f"Last {n} characters of the String is: {result}")

输出

Last 11 characters of the String is: his message

结论

在本文中,我们学习了如何使用不同的内置方法和编程技巧来获取字符串的最后N个字符。首先,我们学习了如何使用切片操作来获取Python中字符串的最后N个字符。接下来,我们看到了使用切片方法、字符串方法和一些内置函数(如deque)来获取字符串的最后N个字符的用法。我们强烈建议读者尝试这些示例以更好地理解这些主题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程