如何从Python字符串中删除最后一个字符?
查看在Python中删除字符串的最后一个字符的不同方法
切片
Python支持负索引切片以及正索引切片。负索引从-1 到-(可迭代长度)。我们将使用负切片来获取可迭代对象的末尾元素。
- 索引-1 可以获取可迭代对象的最后一个元素。
- 索引-2 可以获取可迭代对象的倒数第二个元素。
- 以此类推,直到第一个元素。
让我们看一个示例。
name = 'Geekflare'
print(name[-1])
print(name[-len(name)])
上述程序将使用负索引打印字符串中的最后一个和第一个字符。
我们如何使用切片从字符串中删除最后一个元素? 只需要一行代码。我们知道如何使用切片提取字符串的一部分。让我们将同样的事情应用到负索引上,以从字符串中删除最后一个字符。
- 从开头到倒数第一个元素切割字符串。
buggy_name = 'GeekflareE'
name = buggy_name[:-1]
print(name)
让我们关注上面代码中的第二行。这是代码中的关键行。作为传统切片,它从起始索引提取子字符串,直到倒数第二个元素,因为切片忽略了给出的第二个索引元素。
如果执行上面的代码,您将得到Geekflare
作为输出。
rstrip
字符串方法rstrip 删除给定字符串右侧的字符。因此,我们可以使用它来删除字符串的最后一个元素。我们只需要写不到一行的代码来删除字符串的最后一个字符。
- 将最后一个元素传递给strip 方法,它将返回一个删除了最后一个字符的字符串。
让我们看一下代码片段。
buggy_name = 'GeekflareE'
name = buggy_name.rstrip(buggy_name[-1])
print(name)
我们将字符串的最后一个字符传递给strip 方法。它会删除字符串的最后一个字符并返回一个没有最后一个字符的副本。
如果执行它,将在控制台打印出Geekflare
。
实际示例 – 删除最后一个单词
是的,我们将在实际示例中应用前面几节的内容。
假设我们有一个包含多行文本的文件。我们需要从文件中的每一行删除最后一个单词。
按照以下步骤编写程序。
- 创建一个名为random_text.txt 的文件,并在其中放入几行文本。
- 将数据变量初始化为空字符串。
- 使用with 和open 方法以读写模式打开文件。
- 使用readlines 方法读取文件的内容。
- 迭代内容的每一行。
- 使用split 方法将文本行拆分为单词。
- 使用上述方法之一删除最后一个单词。
- 将结果连接起来形成一个字符串。
- 将结果追加到数据变量中。
- 使用seek 和truncate 方法从文件中删除数据。
- 使用write 方法将最新数据写入文件。
文件包含以下数据。
This is a sample line for testing. LastWord.
This is a sample line for testing. KillingIt.
This is a sample line for testing. RandomWord.
This is a sample line for testing. DeleteIt.
This is a sample line for testing. RemovingIt.
请参阅下面的代码。
更新的代码如下:
updated_data = ''
# 打开文件
with open('random_text.txt', 'r+') as file:
# 读取文件内容
file_content = file.readlines()
# 遍历内容
for line in file_content:
# 删除最后一个单词
updated_line = ' '.join(line.split(' ')[:-1])
# 将数据添加到变量中
updated_data += f'{updated_line}n'
# 清除旧数据
file.seek(0)
file.truncate()
# 写入新数据
file.write(updated_data)
如果你使用给定的文件执行以上代码,则文件将包含以下更新后的数据。
这是一个用于测试的示例行。
这是一个用于测试的示例行。
这是一个用于测试的示例行。
这是一个用于测试的示例行。
这是一个用于测试的示例行。
希望你喜欢本教程。
祝你编程愉快 🙂