gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:24 25 4
gpt4 key购买 nike

我有一个名为 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() 函数调用使查找不区分大小写。

关于python - 如何在 python 中格式化包含标签的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48879453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com