如何在元组中连接字符串?

2024-09-30 16:27:06 发布

您现在位置:Python中文网/ 问答频道 /正文

input:[("xyz",100),("tao",90),("quinee",100)]

数字等于时,字符串将连接到一个列表中。在

^{pr2}$

Tags: 字符串列表input数字taoxyzpr2quinee
3条回答

尝试使用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

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)]

相关问题 更多 >