我是python的新手,所以请耐心等待。 我有一个包含列表的词典:
ophav = {'ill': ['Giunta, John'], 'aut': ['Fox, Gardner', 'Doe, John'], 'clr': ['Mumle, Mads'], 'trl': ['Cat, Fat']}
每次运行脚本时,关键名称('生病,' aut',...)和列表中的项目数量会有所不同。
我喜欢做类似的事情:
opfmeta = []
for key, person in ophav.items():
opfmeta.append('<dc:creator role="' + key + '">' + person + '</dc:creator>')
我知道这不起作用(&#34;无法连接&#39; str&#39;以及&#39; list&#39; objects&#34;) - 我必须遍历列表 这个词不知何故。我该怎么做?
编辑:我需要为每个人单独输入,例如:
<dc:creator role="ill">Fox, Gardner</dc:creator>
<dc:creator role="ill">Doe, John</dc:creator>
答案 0 :(得分:5)
您可以使用' & '.join()
:
opfmeta = []
for key, person in ophav.items():
opfmeta.append('<dc:creator role="' + key + '">' + ' & '.join(person) + '</dc:creator>')
这将连接列表的所有元素以及指定的分隔符(在本例中为' & '
),因此您的结果将如下所示:
<dc:creator role="ill">Fox, Gardner & Doe, John</dc:creator>
您可以查看完整的工作演示HERE
ophav = {'ill': ['Giunta, John'], 'aut': ['Fox, Gardner', 'Doe, John'], 'clr': ['Mumle, Mads'], 'trl': ['Cat, Fat']}
opfmeta = []
for key, person in ophav.items():
for i in person:
opfmeta.append('<dc:creator role="' + key + '">' + i + '</dc:creator>')
for i in opfmeta:
print i
[OUTPUT]
<dc:creator role="ill">Giunta, John</dc:creator>
<dc:creator role="aut">Fox, Gardner</dc:creator>
<dc:creator role="aut">Doe, John</dc:creator>
<dc:creator role="clr">Mumle, Mads</dc:creator>
<dc:creator role="trl">Cat, Fat</dc:creator>