gpt4 book ai didi

python - 如何使用python将div添加到单词列表

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

我正在尝试用标准 HTML 创建表格。但是我有很多词要用 div 标签包装。通常我会做这个服务器端或其他东西,但在这个项目中这不是现实。所以我仅限于普通的旧网络技术。不过,我想知道是否有 python 解决我的问题(即创建一个小脚本,以便我可以运行给定单词列表,输出所需的 HTML,然后将 HTML 复制并粘贴到各种 html 文件中)。因此,如果我有下面的单词列表,我可以运行一个 python 程序,并为每个单词添加所需的 div 和类。一个问题是“顺序”需要增加给定的单词量。

单词

animals
cat
dog
mouse
lion

输出应该是什么

 <div class="Rtable Rtable--1cols">
<div style="order:0" class="Rtable-cell-head">animals</div>
<div style="order:1;" class="Rtable-cell">cat</div>
<div style="order:2;" class="Rtable-cell">dog</div>
<div style="order:3;" class="Rtable-cell">mouse</div>
<div style="order:4;" class="Rtable-cell">lion</div>
</div>

最佳答案

神社解决方案:

from __future__ import print_function
from jinja2 import Template

template = Template("""
<div class="Rtable Rtable--1cols">
<div style="order:0" class="Rtable-cell-head">animals</div>
{%- for order, animal in animals %}
<div style="order:{{ order }};" class="Rtable-cell">{{ animal }}</div>
{%- endfor %}
</div>
""")

animals = """
cat
dog
mouse
lion
""".split()

print(template.render(animals=list(enumerate(animals, 1))))

输出:

<div class="Rtable Rtable--1cols">
<div style="order:0" class="Rtable-cell-head">animals</div>
<div style="order:1;" class="Rtable-cell">cat</div>
<div style="order:2;" class="Rtable-cell">dog</div>
<div style="order:3;" class="Rtable-cell">mouse</div>
<div style="order:4;" class="Rtable-cell">lion</div>
</div>

纯python版本:

from __future__ import print_function

template = """
<div class="Rtable Rtable--1cols">
<div style="order:0" class="Rtable-cell-head">animals</div>\
{animals}
</div>
"""

animal_template = """
<div style="order:{order};" class="Rtable-cell">{animal}</div>"""

animals = """
cat
dog
mouse
lion
""".split()

animal_divs = ''.join([animal_template.format(order=i, animal=animal)
for i, animal in enumerate(animals, 1)])
print(template.format(animals=animal_divs))

输出是一样的。

更新:Python 拆分的最大便利在于它删除了所有空格(包括换行符),但是,如果您的动物名称中有空格(例如 "white rhino") 然后你需要采取另一种方法,你按行分割,从每行中去除任何空格,如果它只包含空格则跳过该行:

animals = [animal.strip() for animal in """
cat
dog
mouse
lion
""".splitlines() if animal.strip()]

(这个方案和下面的node.js方案类似)

但是,如果您的用户了解 javascript 而不是 Python,那么 node.js 解决方案可能会更好:

const animals = `
cat
dog
mouse
lion
`.split('\n').map(v => v.trim()).filter(v => !!v);

const animal_template = (animal, order) => `<div style="order:${order+1};" class="Rtable-cell">${animal}</div>`;

const template = animals => `
<div class="Rtable Rtable--1cols">
<div style="order:0" class="Rtable-cell-head">animals</div>
${animals.map(animal_template).join('\n ')}
</div>`

console.log(template(animals));

关于python - 如何使用python将div添加到单词列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55932909/

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