Python TypeError:将两个列表的值映射到新的一个容器列表中的键值对
我有两个列表/数组Python TypeError:将两个列表的值映射到新的一个容器列表中的键值对,python,Python,我有两个列表/数组标题和说明,如下所示: titles = ['title1', 'title2', 'title3'] descriptions = ['description1', 'description2', 'description3'] topics [ { 'title': 'title1', 'description': 'description1' }, { 'title': 'title2', 'descript
标题
和说明
,如下所示:
titles = ['title1', 'title2', 'title3']
descriptions = ['description1', 'description2', 'description3']
topics [
{
'title': 'title1',
'description': 'description1'
},
{
'title': 'title2',
'description': 'description2'
},
{
'title': 'title3',
'description': 'description3'
}
]
我需要制作一个列表/数组topic
,将它们作为字典/对象键值对包含在其中,如下所示:
titles = ['title1', 'title2', 'title3']
descriptions = ['description1', 'description2', 'description3']
topics [
{
'title': 'title1',
'description': 'description1'
},
{
'title': 'title2',
'description': 'description2'
},
{
'title': 'title3',
'description': 'description3'
}
]
我曾尝试在PHP或JS中这样做:
标题=[‘标题1’、‘标题2’、‘标题3’]
描述=['description1','description2','description3']
主题=[]
对于范围内的i(len(titles)):
主题[i]['title']=标题[i]
主题[i]['description']=描述[i]
但我犯了一个错误:
主题[i]['title']=标题[i]
TypeError:“非类型”对象没有属性“getitem”
那么我应该如何在python中完成这些工作呢?您可以使用
zip
进行列表理解:
[{'title': x, 'description': y} for x, y in zip(titles, descriptions)]
示例:
titles = ['title1', 'title2', 'title3']
descriptions = ['description1', 'description2', 'description3']
print([{'title': x, 'description': y} for x, y in zip(titles, descriptions)])
# [{'title': 'title1', 'description': 'description1'},
# {'title': 'title2', 'description': 'description2'},
# {'title': 'title3', 'description': 'description3'}]
您可以使用
zip
进行列表理解:
[{'title': x, 'description': y} for x, y in zip(titles, descriptions)]
示例:
titles = ['title1', 'title2', 'title3']
descriptions = ['description1', 'description2', 'description3']
print([{'title': x, 'description': y} for x, y in zip(titles, descriptions)])
# [{'title': 'title1', 'description': 'description1'},
# {'title': 'title2', 'description': 'description2'},
# {'title': 'title3', 'description': 'description3'}]