首页 > 解决方案 > 将转义字符 (\n) 添加到字符串元组中的最后一个元素

问题描述

我有一个这样的字符串元组:

stringTuple = ['String1', 'String2', 'String3', 'String4', 'String5', 'String6']

我后来将这个元组与其他多个元组结合起来并输入到一个 Excel 文档中。我需要在每个元组之间换行 - 所以我需要它看起来像这样。

stringTuple = ['String1', 'String2', 'String3', 'String4', 'String5', 'String6\n']

我研究了不同类型的字符串连接,例如: stringTuple[-1:] = stringTuple[-1:] + '\n'没有运气

标签: python

解决方案


列表中的最后一个元素是stringTuple[-1].

将换行符添加到列表中的最后一个元素:

stringTuple[-1] = stringTuple[-1] + "\n"

要不就:

stringTuple[-1] += "\n"

顺便说一句,stringTuple[-1:]是你数组的一部分(有趣的读物是另一个 SO 问题,Understanding slice notation)。stringTuple[start:]产生一个列表中所有项目的列表,从索引start开始。在这种情况下,stringTuple[-1:]是从最后一个索引开始的所有项目的列表(即原始列表中最后一个项目的列表):

stringTuple = ['String1', 'String2', 'String3', 'String4', 'String5', 'String6']

print(stringTuple[-1:]) # ['String6']

使用元组进行这项工作

元组是不可变的,所以你不能就地修改(如果你想修改元组中的项目,你实际上需要创建一个包含修改后的项目的新元组):

stringTuple = ('String1', 'String2', 'String3', 'String4', 'String5', 'String6')

# get last item in tuple, add line break to it
lastItemWithLineBreak = stringTuple[-1] + "\n"

# create a new tuple consisting of every item in our original list but the last
# and then add our new modified item to the end
newTuple = tuple(i for i in stringTuple[:-1]) + (lastItemWithLineBreak,)

print(newTuple) # ('String1', 'String2', 'String3', 'String4', 'String5', 'String6\n')

请注意特殊符号(lastItemWithLineBreak,),它用于创建由单个元素组成的元组lastItemWithLineBreak


推荐阅读