Python 基于一个值连接两个不同列表的字符串

Python 基于一个值连接两个不同列表的字符串,python,string,list,parsing,Python,String,List,Parsing,我有以下变量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'分别代表标题和摘要 我正在尝试生成以下输出: [('8575748','TextA.++'TextB.'),('1055

我有以下变量
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'
分别代表
标题
摘要

我正在尝试生成以下输出:

[('8575748','TextA.++'TextB.'),('10556298','TextC.++'TextD.])]
标题
摘要
与空格
'
连接。请注意,在每个文本的末尾都有
\n
,在连接过程中可能会被删除

我尝试了以下方法:

(列表(zip(z[0],z[1]))[0][0]\
列表(zip(z[0],z[1])[2][0]。条带('\n')+列表(zip(z[0],z[1]))[2][1]。条带('\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.')]

我试图用一个大列表来实现这段代码。我在for循环中得到一个回溯:
ValueError:没有足够的值来解包(预期为3,得到2)
@Joe您的列表总是包含3个值吗?似乎有些物品只有两个