Python 字典键和值问题
Python Dictionary Key and Values Question
- 我有一个元组列表,我希望将其用作新的值
词典.
- 我有一个字符串列表,我希望将其用作键
我的新词典。
- 不过我想用首都作为键
对于嵌套字典。
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
我期望的输出如下:
{'Paris':{"id":0,"Name":"Bob",key:"password"},'Berlin':{"id":1,"Name":"Jack",key:"python"},"London":{"id":2,"Name":"Jenna",key:"overflow"},"Stockholm":{"id":3,"Name":"Eva",key:"1234"}}
所以我用了字典理解。我尝试了各种过滤选项,但似乎没有任何效果。
{item[2]: dict(zip(office_employees, item)) for index, item in enumerate(users)}
我收到的输出:
{'Berlin': {'Name': 'Jack', 'id': 1, 'key': 'Berlin'},
'London': {'Name': 'Jenna', 'id': 2, 'key': 'London'},
'Paris': {'Name': 'Bob', 'id': 0, 'key': 'Paris'},
'Stockholm': {'Name': 'Eva', 'id': 3, 'key': 'Stockholm'}}
这是你想要的吗?只需要使用索引:
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
d = {item[2]: dict(zip(office_employees, (item[0], item[1], item[3]))) for item in users}
print(d)
所以基本上是为了压缩你可以使用:
dict(zip(office_employees, (item[0], item[1], item[3])))
这里有一个有点丑陋的方法来实现你想要的。
代码:
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
ans = {}
for user in users:
ans[user[2]]={office_employees[0]:user[0],office_employees[1]:user[1],office_employees[2]:user[3]}
print(ans)
结果:
{'Paris': {'id': 0, 'Name': 'Bob', 'key': 'password'}, 'Berlin': {'id': 1, 'Name': 'Jack', 'key': 'python'}, 'London': {'id': 2, 'Name': 'Jenna', 'key': 'overflow'}, 'Stockholm': {'id': 3, 'Name': 'Eva', 'key': '1234'}}
Therefore I used dictionary comprehension.
如果不方便,请不要使用字典理解。
d = {}
for u in users:
id_, name, capital, key = u
d[capital] = {
'id': id_,
'Name': name,
'key': key
}
这样就简单多了
我认为在创建嵌套字典之前,您需要将首都放入另一个数组中。
cap_cities = [用户中用户的用户[2]]
- 我有一个元组列表,我希望将其用作新的值 词典.
- 我有一个字符串列表,我希望将其用作键 我的新词典。
- 不过我想用首都作为键 对于嵌套字典。
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
我期望的输出如下:
{'Paris':{"id":0,"Name":"Bob",key:"password"},'Berlin':{"id":1,"Name":"Jack",key:"python"},"London":{"id":2,"Name":"Jenna",key:"overflow"},"Stockholm":{"id":3,"Name":"Eva",key:"1234"}}
所以我用了字典理解。我尝试了各种过滤选项,但似乎没有任何效果。
{item[2]: dict(zip(office_employees, item)) for index, item in enumerate(users)}
我收到的输出:
{'Berlin': {'Name': 'Jack', 'id': 1, 'key': 'Berlin'},
'London': {'Name': 'Jenna', 'id': 2, 'key': 'London'},
'Paris': {'Name': 'Bob', 'id': 0, 'key': 'Paris'},
'Stockholm': {'Name': 'Eva', 'id': 3, 'key': 'Stockholm'}}
这是你想要的吗?只需要使用索引:
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
d = {item[2]: dict(zip(office_employees, (item[0], item[1], item[3]))) for item in users}
print(d)
所以基本上是为了压缩你可以使用:
dict(zip(office_employees, (item[0], item[1], item[3])))
这里有一个有点丑陋的方法来实现你想要的。
代码:
users = [
(0, "Bob", "Paris", "password"),
(1, "Jack", "Berlin", "python"),
(2, "Jenna", "London" ,"overflow"),
(3, "Eva", "Stockholm" ,"1234")
]
office_employees = ["id","Name","key"]
ans = {}
for user in users:
ans[user[2]]={office_employees[0]:user[0],office_employees[1]:user[1],office_employees[2]:user[3]}
print(ans)
结果:
{'Paris': {'id': 0, 'Name': 'Bob', 'key': 'password'}, 'Berlin': {'id': 1, 'Name': 'Jack', 'key': 'python'}, 'London': {'id': 2, 'Name': 'Jenna', 'key': 'overflow'}, 'Stockholm': {'id': 3, 'Name': 'Eva', 'key': '1234'}}
Therefore I used dictionary comprehension.
如果不方便,请不要使用字典理解。
d = {}
for u in users:
id_, name, capital, key = u
d[capital] = {
'id': id_,
'Name': name,
'key': key
}
这样就简单多了
我认为在创建嵌套字典之前,您需要将首都放入另一个数组中。
cap_cities = [用户中用户的用户[2]]