我有一个名为 tokens 的列表,我想格式化这个列表,以便在我打印它时,它是人类可读的。
列表:
tokens = ['<h1>','Hello','World','</h1>','<p>','Welcome','to','this','planet','</p>']
我希望格式化后的输出看起来像:
Heading: Hello World
Paragraph: Welcome to this planet
到目前为止我尝试了什么:
我首先尝试替换 <h1>
和 <p>
标签,以便在输出时显示“标题:”和“段落:”。我使用 FOR 循环遍历所有标记并找到要替换的正确标签:
for token in tokens:
# comparing strings
elif token == '<h1>':
print(token.replace('<h1>', 'Heading: '))
elif token == '<p>':
print(token.replace('<p>', 'Paragraph: '))
我需要做的下一部分是打印出 <h1>
之间的句子标签和 <p>
标签。为此我想到了创建一个方法,一般的伪代码是:
def between(tokens, tag, endTag)
if token is between tag and endTag
print the sentence
我真的不知道如何让这个方法在 python 中工作并尝试过这样的事情:
def between(tokens, tag, endTag):
sentence = []
for token in tokens:
if(token > tag and token < endTag):
sentance.append(token)
return sentance
但我知道 if 语句没有意义,而且总体上不起作用。我怎样才能解决这个问题并正确格式化列表?
您可以创建人类可读标签名称的字典,并用其名称替换标签。如果 token 不是标签,则不会被替换。
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
.lower()
函数调用使查找不区分大小写。
我是一名优秀的程序员,十分优秀!