[英]Concatenate two strings of different lists based on a value
我有以下變量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'
分別代表title
和abstract
。
我正在嘗試生產以下 output:
[('8575748', 'TextA.' + ' ' + 'TextB.'), ('10556298', 'TextC.' + ' ' + 'TextD.')]
即title
和abstract
與空格' '
連接。 請注意,每個文本的末尾都有\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.')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.