格式化字符串的所有行(即使\ n在字符串中)

时间:2019-04-24 04:19:04

标签: python

我有一个包含字符串的list,其中一些包含\n

我的问题是,当我打印列表并添加\t时,它仅适用于第一行。我需要\t才能应用于打印索引的所有行。

我在\t行中添加了"t = ",但是它仅将其应用于第一个实例。 不知道我在想什么。

mylist = [
  ['Example of a string', 'more words and more words'],
  ["This is an example of a string .\nBut this is a new line \nIt should all be foramted the same!" ,'Blah blah blah blah'],
]

templist = []
for text in mylist:
    t = "--"+text[1]+"--\n"+"\"" + "\t" +text[0] + "\""
    templist.append(t)
for text in templist:
    print(text)

-当前输出-

>>>--more words and more words--                                                                                                                                                      
"[TAB] Example of a string"                                                                                                                                                       
--Blah blah blah blah--                                                                                                                                                            
"[TAB] This is an example of a string .                                                                                                                                           
But this is a new line                                                                                                                                                             
It should all be foramted the same!"

-期望的输出-

>>>>--more words and more words--                                                                                                                                                      
[TAB] "Example of a string"                                                                                                                                                       
--Blah blah blah blah--                                                                                                                                                            
[TAB]"This is an example of a string .                                                                                                                                           
[TAB] But this is a new line                                                                                                                                                             
[TAB] It should all be foramted the same!"

2 个答案:

答案 0 :(得分:0)

目前还不清楚您到底想要什么以及为什么要这么做,但是从您的示例中,只需将from django.contrib.auth import get_user_model from django.contrib.auth.models import Group User = get_user_model() new_user_instance = User.objects.create_user(username='your_username', email='foo@bar.com', password='secret_password', is_staff=True) user_type_instance = UserType.objects.create(user=new_user_instance, user_type=2) group = Group.objects.get(name='groupname') new_user_instance.groups.add(group) 替换为text[0],即可在被阻止的文本中的每个换行符之后获取制表符。您得到了您想要的结果。

text[0].replace('\n', '\n\t')

这似乎是期望的结果。但是,再次-我建议以更直观的方式来结构化数据。就像将这些标题映射到下面显示的句子列表的字典一样。

答案 1 :(得分:0)

您只需按名称将其打开包装,这样它的方式就更易于阅读和理解。

此外,str.splitlines()将用换行符分隔字符串

for text, title in mylist:
    text = '\t'.join(text.splitlines(True))
    print(f'--{title}--\n\t"{text}"')
    #print('--{}--\n\t"{}"'.format(title, text)

这将按需要打印:

--Example of a string--
    "more words and more words"
--Blah blah blah blah--
    "This is an example of a string .
    But this is a new line
    It should all be foramted the same!"