如何使用python将属性写入相应的标记(正文中的详细示例可能有助于更好地理解。)

2024-06-16 12:15:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习如何为列表中的重复标记编写属性。下面是我努力实现的一个例子:

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新手,所以还在想很多事情。事先非常感谢


Tags: 标记列表属性标签例子taglisttag1tag2
1条回答
网友
1楼 · 发布于 2024-06-16 12:15:21

使用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))

相关问题 更多 >