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个值吗?似乎有些物品只有两个