我有一个特别的问题,让我难过.假设我有以下两个列表:
x = ["A","B","C","D","E"]
y = [1,2,3,2,1]
Run Code Online (Sandbox Code Playgroud)
x并y有一段感情.这种关系与指数挂钩.也就是说,"A"涉及1,"B"涉及2,"C"涉及3,依此类推.
我要做的是创建一个键值关系,其中唯一项y是键,每个键都有一个列表,其中包含与前面提到的键相关的字母.我试图做以下事情:
mapping = dict(zip(y,x))
{1: 'E', 2: 'D', 3: 'C'}
Run Code Online (Sandbox Code Playgroud)
这会覆盖上一封信.我希望能够返回以下内容:
{1:['A','E'], 2:['B','D'], 3:['C']}
Run Code Online (Sandbox Code Playgroud)
任何人都有这个聪明的解决方案?最好没有itertools.
您可以使用 setdefault
x = ["A","B","C","D","E"]
y = [1,2,3,2,1]
d = {}
for i,j in zip(y,x):
d.setdefault(i, []).append(j)
print d
Run Code Online (Sandbox Code Playgroud)
输出:
{1: ['A', 'E'], 2: ['B', 'D'], 3: ['C']}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |