让我们假设,我创建了3个列表,我想为它创建一个字典。 e.g。
a= ['A', 'B', 'C', 'D']
b =[1, 2, 3, 4]
c = [9, 8, 7, 6]
现在我想要的是创建一个这样的字典:
{'A':{'1' :'9'} , 'B':{'2':'8'}, 'C':{'3':'7'} , 'D':{'4':'6'}}
是否有可能,有人可以帮助我吗?
答案 0 :(得分:5)
您可以从zip
- ed列表创建字典,并将int值转换为字符串 - 如果我理解您的问题
dct = {x: {str(y): str(z)} for x, y, z in zip(a,b,c)}
输出:
{'A': {'1': '9'}, 'C': {'3': '7'}, 'B': {'2': '8'}, 'D': {'4': '6'}}
答案 1 :(得分:2)
假设你想要的是a
成为外部字典中的键,b
和c
是内部字符串的键和值元素:
d = {k: {x: y} for k, x, y in zip(a, b, c)}
<强>更新强>
但是,在您的示例中,x
和y
是字符串,所以如果这是您想要的:
d = {k: {str(x): str(y)} for k, x, y in zip(a, b, c)}
答案 2 :(得分:2)
a = ['A', 'B', 'C', 'D'] # don't forget the quotation marks
b = [1, 2, 3, 4]
c = [9, 8, 7, 6]
res = dict()
for i, index_a in enumerate(a):
res[index_a] = {str(b[i]): c[i]}
编辑:或者使用列表理解(主要针对此处的选民,因为它是高级python并且难以理解):
res = dict((a[i], {str(b[i]): c[i]}) for i in range(len(a)))
答案 3 :(得分:2)
您也可以在此处使用map()
:
a = ['A', 'B', 'C', 'D']
b = [1, 2, 3, 4]
c = [9, 8, 7, 6]
dct = dict(map(lambda x, y, z : (x, {str(y): str(z)}), a, b, c))
print(dct)
哪个输出:
{'A': {'1': '9'}, 'B': {'2': '8'}, 'C': {'3': '7'}, 'D': {'4': '6'}}
答案 4 :(得分:2)
你可以试试这个:
a= ['A', 'B', 'C', 'D']
b =[1, 2, 3, 4]
c = [9, 8, 7, 6]
new_data = dict([[a, dict([map(str, i)])] for a, i in zip(a, zip(b, c))])
输出:
{'A': {'1': '9'}, 'C': {'3': '7'}, 'B': {'2': '8'}, 'D': {'4': '6'}}
或者
new_data = dict(zip(a, map(lambda x:dict([x]), zip(map(str, b), map(str, c)))))
答案 5 :(得分:1)
"setting.txt"
或者如果你真的是这个意思:
{ a[x]: {b[x]: c[x]} for x in range(len(a))}
答案 6 :(得分:1)
你在找这样的东西吗?
a= ['A', 'B', 'C', 'D']
b =[1, 2, 3, 4]
c = [9, 8, 7, 6]
new_dict={}
set(map(lambda x,y,z:(new_dict.__setitem__(x,{y,z})),a,b,c))
print(new_dict)
输出:
{'D': {4, 6}, 'A': {9, 1}, 'B': {8, 2}, 'C': {3, 7}}