python - python如何将属性写入对应的标签? (文中的详细示例可能有助于更好地理解它。)

标签 python list attributes tags

我正在努力解决如何为列表中的重复标签编写属性的问题。以下是我尝试实现的示例:

a = [('tag1', 'attribute1'), ('tag2', 'attribute2'), ('tag2', 'attribute3'), ('tag5', 'attribute4'), ('tag5', 'attribute5'), ('tag5', 'attribute6')]

我想要的结果是:
(相同标签的属性被写入相同的标签。)
<tag1 attribute1=''> <tag2 attribute2='' attribute3=''> <tag5 attribute4='' attribute5='' attribute6=''>

现在我正在考虑先将标签写入如下列表:

tagList = []
for i in a:
    tagList.append(i[0])
unique = list(set(tagList))

所以它返回 ['tag1', 'tag2', 'tag5'] ,但如何将属性与相应的标签匹配?抱歉,我是 Python 的新手,所以仍在解决很多问题。非常感谢您!

最佳答案

使用defaultdict。然后遍历您的列表。

from collections import defaultdict

tags = defaultdict(set)
foo = [('tag1', 'attribute1'), ('tag2', 'attribute2'), ('tag2', 'attribute3'), ('tag5', 'attribute4'), ('tag5', 'attribute5'), ('tag5', 'attribute6')]

for tag, attribute in foo:
     tags[tag].add(attribute)

此时您将拥有一本字典,其中的键是您的标签,而您的值是一组独特的属性。然后你可以遍历字典,做任何你想做的事。

for tag, attributes in tags.iteritems():
    output = ["<", tag]
    for attribute in attributes:
        output.append(" {}=''".format(attribute))
    output.append(">")
    print("".join(output))

关于python - python如何将属性写入对应的标签? (文中的详细示例可能有助于更好地理解它。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320675/

相关文章:

php - 属性中的简单 HTML DOM 通配符

c# - 如何从抽象类中的静态方法获取当前类型?

python - 使用 Python 进行轨迹聚类/聚合

python - <Response [200]> 不可 JSON 序列化

java - 在 Java 中,如何从父方法访问子实例的私有(private)静态属性?

python - 检查列表或字符串以查看是否存在来自另一个列表的字符串

python - 将数组转换为 python 列表列表

Python Django 简单站点

python - 无法启动 Selenium,遇到 DeprecationWarning 和 WebDriverException 错误

php - 通过 PHP 更新 MySQL 中的 "order"列的最有效方法是什么