2024-09-30 16:27:06 发布
网友
input:[("xyz",100),("tao",90),("quinee",100)]
当数字等于时,字符串将连接到一个列表中。在
尝试使用defaultdict,它将其值默认为列表:
from collections import defaultdict def concat(lst): d = defaultdict(list) for k, v in lst: d[v].append(k) return [(v, k) for k, v in d.items()]
您可以使用defaultdict:
defaultdict
from collections import defaultdict l = [("xyz",100),("tao",90),("quinee",100)] d = defaultdict(list) for i in l: d[i[1]].append(i[0]) r = [(j, i) for i, j in d.items()] print(r) # [(['tao'], 90), (['xyz', 'quinee'], 100)]
^{}可以做到。在
from itertools import groupby def key(x): return x[1] input=[("xyz",100),("tao",90),("quinee",100)] output = [ (list(string for string,index in group),index) for index,group in groupby(sorted(input, key=key, reverse=True), key=key)] assert output == [(["xyz","quinee"],100),(["tao"],90)]
尝试使用defaultdict,它将其值默认为列表:
您可以使用
defaultdict
:^{} 可以做到。在
相关问题 更多 >
编程相关推荐