如何在python中格式化包含标记的列表

如何在python中格式化包含标记的列表,python,Python,我有一个名为tokens的列表,我想格式化这个列表,这样当我打印它时,它是人类可读的 名单如下: tokens = ['<h1>','Hello','World','</h1>','<p>','Welcome','to','this','planet','</p>'] 我真的不知道如何让这个方法在python中工作,我尝试过这样的方法: def between(tokens, tag, endTag): sentence = [] for tok

我有一个名为tokens的列表,我想格式化这个列表,这样当我打印它时,它是人类可读的

名单如下:

tokens = ['<h1>','Hello','World','</h1>','<p>','Welcome','to','this','planet','</p>']
我真的不知道如何让这个方法在python中工作,我尝试过这样的方法:

def between(tokens, tag, endTag):
sentence = []
for token in tokens:
    if(token > tag and token < endTag):
        sentance.append(token)
return sentance
def-between(令牌、标记、结束标记):
句子=[]
对于令牌中的令牌:
如果(标记>标记和标记<结束标记):
附加(标记)
回传

但我知道if语句没有意义,也不能从整体上解决问题。如何解决此问题并正确设置列表格式?

您可以创建一个人类可读标记名字典,并用其名称替换标记。如果令牌不是标记,则不会替换它

tags = {"<h1>" : 'Heading1: ', "</h1>" : "\n", 
        "<p>" : "Paragraph: ", "</p>" : "\n", ... }
new_tokens = [tags.get(token.lower(),token) for token in tokens]
print("".join(new_tokens))
#Heading1: HelloWorld
#Paragraph: Welcometothisplanet
tags={'':'Heading1:','':“\n”,
“”:“段落:”,“

”:“\n”,…} new_tokens=[tags.get(token.lower(),token)表示令牌中的令牌] 打印(“.”加入(新的_代币)) #标题1:地狱世界 #段落:Welcometothisplanet
.lower()
函数调用使查找不区分大小写。

您可以尝试以下方法:

" ".join('@#'.join([e for e in tokens if '</' not in e]).replace("<h1>","\n Heading:").replace("<p>","\n Paragraph:").split("@#"))

“”.join(“@#”).join([e表示“谢谢你”,表示代币中的e)此方法比我最初计划的方法更容易实现/理解
tags = {"<h1>" : 'Heading1: ', "</h1>" : "\n", 
        "<p>" : "Paragraph: ", "</p>" : "\n", ... }
new_tokens = [tags.get(token.lower(),token) for token in tokens]
print("".join(new_tokens))
#Heading1: HelloWorld
#Paragraph: Welcometothisplanet
" ".join('@#'.join([e for e in tokens if '</' not in e]).replace("<h1>","\n Heading:").replace("<p>","\n Paragraph:").split("@#"))