ai didi

python - 如何使用 python 将多个列表组合成多个字典?

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

很抱歉我不得不问这个问题,如果它是一个相当简单的问题,因为这个脚本的时间有限..我已经写了一些如下代码:

localNames = re.findall(r"<\*\[local-name\(\)='.*?'.*?\/@\*\[name\(\)='.*?'.*?'\]", str(nontransTagsContent[0]))
for i in localNames:
tags = re.findall(r"local-name\(\)='(.*?)'", i)
attributes = re.findall(r"name\(\)='(.*?)'", i)

print(tags) 的结果如下:

['tag1']
['tag2', 'tag3', 'tag4']
['tag5', 'tag6']

print(attributes) 的结果如下:

['attribute1', 'attribute2', 'attribute3', 'attribute4']
['attribute5', 'attribute6']
['attribute7', 'attribute8', 'attribute9']

我想要得到的结果是像这样的字典:

{'tag1':['attribute1', 'attribute2', 'attribute3','attribute4'}
{'tag2':['attribute5', 'attribute6']}
{'tag3':['attribute5', 'attribute6']}
{'tag4':['attribute5', 'attribute6']}
{'tag5':['attribute7', 'attribute8', 'attribute9']}
{'tag6':['attribute7', 'attribute8', 'attribute9']}

我想这样一来,我可以很容易地操作数据,因为我可以提取数据并将它们写入其他形式。下面是我试过的代码:

for x in tags:
dict = zip(tags, attributes)
print (list(dict))

但是输出好像不对。你能帮忙看一下,看看如何解决这个问题吗...非常感谢!

最佳答案

tags=[ 
['tag1'],
['tag2', 'tag3', 'tag4'],
['tag5', 'tag6'],
]

attributes=[
['attribute1', 'attribute2', 'attribute3', 'attribute4'],
['attribute5', 'attribute6'],
['attribute7', 'attribute8', 'attribute9'],
]

for idx, tag_line in enumerate(tags):
for tag in tag_line:
print {tag : attributes[idx]}

输出:

{'tag1': ['attribute1', 'attribute2', 'attribute3', 'attribute4']}
{'tag2': ['attribute5', 'attribute6']}
{'tag3': ['attribute5', 'attribute6']}
{'tag4': ['attribute5', 'attribute6']}
{'tag5': ['attribute7', 'attribute8', 'attribute9']}
{'tag6': ['attribute7', 'attribute8', 'attribute9']}

如果你想让字典中的所有标签都在一个列表中

  from itertools import repeat
for tag, attr in zip(tags,attributes):
print dict(zip(tag, repeat(attr,len(tag))))

输出:

{'tag1': ['attribute1', 'attribute2', 'attribute3', 'attribute4']}
{'tag4': ['attribute5', 'attribute6'], 'tag2': ['attribute5', 'attribute6'], 'tag3': ['attribute5', 'attribute6']}
{'tag5': ['attribute7', 'attribute8', 'attribute9'], 'tag6': ['attribute7', 'attribute8', 'attribute9']}

附加要求:

tags, attributes = [], []
for i in localNames:
tags.append(re.findall(r"local-name\(\)='(.*?)'", i))
attributes.append(re.findall(r"name\(\)='(.*?)'", i))

关于python - 如何使用 python 将多个列表组合成多个字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430945/

24 4 0
文章推荐: Python 错误 : missing 'mdb-schema' when using python_access package
文章推荐: html - 如何在与输入字段顶部边框重叠的标签前后添加填充?
文章推荐: css - 如何删除列表中元素之间的空格/阴影
文章推荐: c - 一个线程的 SEGFAULT - 它会影响其他现有线程吗?
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com