我有以下列表:
[ 1,2,3,4,5,6,7,8,9]
我想根据此列表中的ID号对元素进行分组:
[2,1,0]
所以我得到了
[[3,9],[2,7],[1,8]]
谢谢
我有以下列表:
[ 1,2,3,4,5,6,7,8,9]
我想根据此列表中的ID号对元素进行分组:
[2,1,0]
所以我得到了
[[3,9],[2,7],[1,8]]
谢谢
假设您的第一个列表是唯一的。您可以创建字典并根据键进行排序。
如果您的python版本是2. *,请使用sorted(dictA.iteritems())
代替sorted(dictA.items())
keys = [ 1,2,3,4,5,6,7,8,9]
values = [2,1,0]
dictA = dict(zip(keys,values))
res = {}
for key,value in sorted(dictA.items()):
res.setdefault(value,[]).append(key)
print(res)
编辑1:以便对字典进行排序并获取字典值
import collections
od = collections.OrderedDict(sorted(res.items()))
list(od.values())
您必须在这里做一些工作。希望这会有所帮助。
,这将生成所需输出列表的列表
values = [1,9]
keys = [2,0]
nKeys = len(set(keys))
result = [ [] for i in range(nKeys)]
for kid,vid in zip(keys,values):
result[kid].append(vid)