我想将一个字符串列表连接成新的字符串,这些字符串根据列表中的值进行分组。这是我的意思的一个例子:
输入
key = ['1','2','2','3']
data = ['a','b','c','d']
结果
newkey = ['1','2','3']
newdata = ['a','b c','d']
我了解如何加入文本。但是我不知道如何正确地遍历列表的值来聚合相同键值共有的字符串。
感谢任何帮助或建议。谢谢。
最佳答案
from collections import defaultdict
d = defaultdict(list)
for k, v in zip(key, data):
d[k].append(v)
print [(k, ' '.join(v)) for k, v in d.items()]
输出:
[('1', 'a'), ('3', 'd'), ('2', 'b c')]
以及如何获取新列表:
newkey, newvalue = d.keys(), [' '.join(v) for v in d.values()]
保存订单:
newkey, newvalue = zip(*[(k, ' '.join(d.pop(k))) for k in key if k in d])
关于python - 按组连接字符串python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280092/