python - 按组连接字符串python

标签 python string group-by string-concatenation

我想将一个字符串列表连接成新的字符串,这些字符串根据列表中的值进行分组。这是我的意思的一个例子:

输入

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/

相关文章:

python - Flask 应用不能暴露在 Droplet 上

Python:将两个列表压缩在一起而不截断

python - 将数据拆分为 pandas 中的列

python - 无法使用 Python 脚本和通配符将多个文件上传到 AWS S3

c - C 程序中的奇怪行为,分配内存后变量损坏

mysqli 使用 WHERE 和 GROUP BY 进行计数

r - 计算每组的值并将其作为键值对附加到 R 中的现有列中

java - W/System.err : org. json.JSONException : Value <br of type java. lang.String 无法转换为 JSONObject

r - 如何匹配R中两列之间的字符串?

python - 使用 pandas 聚合基于其他列的结果