现在有两个列表a,b
a = ['e','f','g']
b = ['1','2','3']
如果想变成
x = [{'name':'e','link':'1'},{'name':'f','link':'2'},{'name':'g','link':'3'}]
x是一个列表嵌套字典的变量。
首先我们可以使用zip()函数。
zip()函数的用法是接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),返回由这些元组组成的list列表,如果传入的参数的长度不等,则返回的list列表的长度和传入参数中最短对象的长度相同。
举例1:
x = [1,2,3,4,5]
y = ['a','b','c','d']
new = zip(x,y)
print(new)
for a,b in zip(x,y):
print(a)
print(b)
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
# 1
# a
# 2
# b
# 3
# c
# 4
# d
我们可以定义一个字典d,以及列表new_list,通过zip()函数,输出a,b的同时,赋给字典d的value值,并且不断地向new_list添加元素。
a = ['e','f','g']
b = ['1','2','3']
new_list = []
for k,v in zip(a,b):
d ={}
d['name'] = k
d['link'] = v
new_list.append(d)
print(new_list)
列表的.append()方法是在列表的尾部加入指定的元素,即追加。
此时输出为:
[{'name': 'e', 'link': '1'}, {'name': 'f', 'link': '2'}, {'name': 'g', 'link': '3'}]
Process finished with exit code 0