我有一个列表:
<w>Asf</w>
<k>BOO</k>
<l>leg</l>
<w>kum</w>
...
现在我需要类似的东西:
<w id='1'>Asf</w>
<k>BOO</k>
<l>leg</l>
<w id='2'>kum</w>
...
<w id='250'>mau</w>
...
所以我想添加此id='n'
,但仅限于<a>
。我可以添加到该列表的东西,但我不知道如何使用计数数字。我甚至不知道该尝试什么。我可以使用正则表达式对<w>
进行处理并在其中添加一些内容,但是如何将计数ID放入?
我尝试了什么:
chars = ('w', 'k','l')
tags = itertools.cycle(chars)
for word, tag in zip(my_list, tags):
names1.append("<{0} id='1'>{1}</{0}>".format(tag, word))
print("<{0} id='1'>{1}</{0}>".format(tag, word))
但这完全错了。我得到了开头和结尾标签的id,显然不计算在内。
答案 0 :(得分:1)
不完全确定你在问什么。据我了解您的问题,您希望为每个id
标记添加不断增加的<w>
属性。你可以尝试这样的事情:
data = ['<w>Asf</w>', '<k>BOO</k>', '<l>leg</l>', '<w>kum</w>']
counter = 0
for i, line in enumerate(data):
if "<w>" in line:
data[i] = line.replace("<w>", "<w id='{}'>".format(counter))
counter += 1
print data
这使用counter
变量,每次行包含<w>
标记时,该变量都会增加。如果要将id添加到其他标记,可以轻松地将其扩展为函数,将w
或任何其他标记名称作为参数。
输出:
["<w id='0'>Asf</w>", '<k>BOO</k>', '<l>leg</l>', "<w id='1'>kum</w>"]