2017-07-27 96 views
1

说我有这个字符串:添加文本,以结束字符串的所有行的

""" 
iris 
jonah 
car 
donut 
""" 

我怎么都行的末尾添加的东西吗?字符串中的行数可能会不时变化。

喜欢的东西:

l = duplicate.split('\n') 
l[1]+= 'X' 
l = '\n'.join(l) 
print(l) 

复制是字符串的名字。

此代码仅增加了“X”到行的结尾1

我怎么能做到这一点,每行?

所需的输出:

""" 
irisX 
jonahX 
carX 
donutX 
""" 

谢谢!

+0

您是否像[this](https://regex101.com/r/ys08Jt/1)这样说? – mkHun

+1

@ Peri461您能指出一个引用,指出三重引号字符串不应该用于除文档字符串之外的其他任何内容吗? –

+0

@ Peri461需要引用。 – Goyo

回答

0

首先,拆分为你'\n'duplicate

splitted = duplicate.split('\n') 

在与for每一行的末尾,则追加'x',并加入这些行'\n'。 我一个劲儿地行做两个操作:

"\n".join(line + "x" for line in splitted) 

如果你不熟悉发电机表情,这有点类似:

withSuffixes = [] 
for line in l: 
    withSuffixes.append(splitted + "x") 
"\n".join(withSuffixes) 
+0

谢谢,这个作品完美。 – CandyGum

4

只需使用str.replace()

addition = 'X' 
new_string = duplicate.replace('\n', addition + '\n') 
+1

迄今为止唯一的答案是在字符串中引入'replace'函数。 – Peri461

+0

这个工程,类型,最后一行不会得到'x'。 :/但是,谢谢! – CandyGum

+0

在这种情况下手动添加它!很好的开箱思考这个答案 –

0

取出l[1]+= 'X'线,改变l = '\n'.join(l)l = 'X\n'.join(l)

0

您可以使用map的功能适用于所有

"\n".join(map(lambda word: word+"x", s.split("\n"))) 
0

尝试T:你获得过使用split,然后join在一个字符串中的元素列表中的元素他使用列表理解为每行添加'X',然后通过换行符将其加入。

duplicate = """ 
iris 
jonah 
car 
donut 
""" 

l = duplicate.split('\n') 
l = [line + 'X' for line in l] 
final = '\n'.join(l)