gpt4 book ai didi

python - 根据一个值连接两个不同列表的字符串

转载 作者:行者123 更新时间:2023-12-04 07:42:12 25 4
gpt4 key购买 nike

我有以下变量 z :

z =   [
['8575748' , 't', 'TextA.\n'],
['8575748' , 'a', 'TextB.\n'],
['10556298', 't', 'TextC.\n'],
['10556298', 'a', 'TextD.\n'],

]
'TextA\n' , 'TextB\n' , 'TextC\n' , 和 'TextD\n'只不过是从 .txt 解析的文本样本文件。 't''a'代表 titleabstract , 分别。
我正在尝试产生以下输出:
[('8575748', 'TextA.' + ' ' + 'TextB.'), ('10556298', 'TextC.' + ' ' + 'TextD.')]
titleabstract与空格连接 ' ' .注意这里有 \n在每个文本的末尾,在连接过程中可能会被删除。
我尝试了以下方法:
(list(zip(z[0], z[1]))[0][0] , \
list(zip(z[0], z[1]))[2][0].strip('\n') + list(zip(z[0], z[1]))[2][1].strip('\n'))
看起来很长的代码。我想要一个快速而干净的代码。

最佳答案

z = [
["8575748", "t", "TextA.\n"],
["8575748", "a", "TextB.\n"],
["10556298", "t", "TextC.\n"],
["10556298", "a", "TextD.\n"],
]

out = {}
for id_, _, txt in z:
out.setdefault(id_, []).append(txt.strip())

out = [(k, " ".join(v)) for k, v in out.items()]
print(out)
打印:
[('8575748', 'TextA. TextB.'), ('10556298', 'TextC. TextD.')]

关于python - 根据一个值连接两个不同列表的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67403063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com