优雅地按照一个列表提取切片另一个列表

a = [0,0,1,1,0,2]
b = ['a','b','c','d','e','f']

ab对应的,按照a的分类取出b的元素,
就是想得到矩阵
[ ['a','b','e'], ['c','d'], ['f'] ]
用几个遍历肯定是可以处理的
想要更优雅的方法
谢谢

阅读 3.3k
1 个回答
a = [0,0,1,1,0,2]
b = ['a','b','c','d','e','f']

from collections import defaultdict
map = defaultdict(list)
for key, value in zip(a, b): map[key].append(value)
print(map.values())
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题