Python 如何从另一个子列表的特定元素创建新的子列表
我有一个子列表。每个子列表都是一个带字符串的句子。我想删除每个列表的第三个元素,从每个子列表中创建一个新列表。 我的代码如下:Python 如何从另一个子列表的特定元素创建新的子列表,python,list,sublist,Python,List,Sublist,我有一个子列表。每个子列表都是一个带字符串的句子。我想删除每个列表的第三个元素,从每个子列表中创建一个新列表。 我的代码如下: [ ['Moi\tPRO:PER\tmoi', 'je\tPRO:PER\tje', 'ne\tADV\tne', 'trouve\tVER:pres\ttrouver', 'pas\tADV\tpas', 'très\tADV\ttrès', 'esthétique\tADJ\testhétique', '.\tSENT\t.'], ['L’esthéti
[ ['Moi\tPRO:PER\tmoi', 'je\tPRO:PER\tje', 'ne\tADV\tne', 'trouve\tVER:pres\ttrouver', 'pas\tADV\tpas', 'très\tADV\ttrès', 'esthétique\tADJ\testhétique', '.\tSENT\t.'], ['L’esthétique\tADJ\tL’esthétique', 'pêche\tNOM\tpêche', 'un\tDET:ART\tun', 'peu\tADV\tpeu', '.\tSENT\t.'], ['Cette\tPRO:DEM\tce', 'grosse\tADJ\tgros', 'prise\tNOM\tprise', 'là\tADV\tlà', '...\tPUN\t...'], ['Cette\tPRO:DEM\tce', 'prise\tNOM\tprise', 'puis\tADV\tpuis', 'la\tDET:ART\tle', 'borne\tNOM\tborne', ',\tPUN\t,', 'ça\tPRO:DEM\tcela', 'se\tPRO:PER\tse', 'voit\tVER:pres\tvoir', '.\tSENT\t.'], ['Derrière\tPRP\tderrière', 'la\tDET:ART\tle', 'télé\tNOM\ttélé', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'mais\tKON\tmais', '...\tPUN\t...'], ['Mais\tKON\tmais', 'vu\tVER:pper\tvoir', 'le\tDET:ART\tle', 'système\tNOM\tsystème', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'être\tVER:infi\têtre', 'difficile\tADJ\tdifficile', 'de\tPRP\tde', 'faire\tVER:infi\tfaire', 'plus\tADV\tplus', 'sobre\tADJ\tsobre', '!\tSENT\t!'], ['M\tNOM\tM', '.\tSENT\t.', 'Laudrel\tNAM\tLaudrel', 'est\tVER:pres\têtre', 'mort\tVER:pper\tmourir', 'hier\tADV\thier', 'soir\tNOM\tsoir', '.\tSENT\t.'], ['je\tPRO:PER\tje', 'viens\tVER:pres\tvenir', '2.2\tNUM\t@card@', ',\tPUN\t,', 'lo\tVER:pper\tlo', '.\tSENT\t.']]
[['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.']]
我更改了代码(更新版本):
更新:我的子列表如下所示:
[ ['Moi\tPRO:PER\tmoi', 'je\tPRO:PER\tje', 'ne\tADV\tne', 'trouve\tVER:pres\ttrouver', 'pas\tADV\tpas', 'très\tADV\ttrès', 'esthétique\tADJ\testhétique', '.\tSENT\t.'], ['L’esthétique\tADJ\tL’esthétique', 'pêche\tNOM\tpêche', 'un\tDET:ART\tun', 'peu\tADV\tpeu', '.\tSENT\t.'], ['Cette\tPRO:DEM\tce', 'grosse\tADJ\tgros', 'prise\tNOM\tprise', 'là\tADV\tlà', '...\tPUN\t...'], ['Cette\tPRO:DEM\tce', 'prise\tNOM\tprise', 'puis\tADV\tpuis', 'la\tDET:ART\tle', 'borne\tNOM\tborne', ',\tPUN\t,', 'ça\tPRO:DEM\tcela', 'se\tPRO:PER\tse', 'voit\tVER:pres\tvoir', '.\tSENT\t.'], ['Derrière\tPRP\tderrière', 'la\tDET:ART\tle', 'télé\tNOM\ttélé', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'mais\tKON\tmais', '...\tPUN\t...'], ['Mais\tKON\tmais', 'vu\tVER:pper\tvoir', 'le\tDET:ART\tle', 'système\tNOM\tsystème', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'être\tVER:infi\têtre', 'difficile\tADJ\tdifficile', 'de\tPRP\tde', 'faire\tVER:infi\tfaire', 'plus\tADV\tplus', 'sobre\tADJ\tsobre', '!\tSENT\t!'], ['M\tNOM\tM', '.\tSENT\t.', 'Laudrel\tNAM\tLaudrel', 'est\tVER:pres\têtre', 'mort\tVER:pper\tmourir', 'hier\tADV\thier', 'soir\tNOM\tsoir', '.\tSENT\t.'], ['je\tPRO:PER\tje', 'viens\tVER:pres\tvenir', '2.2\tNUM\t@card@', ',\tPUN\t,', 'lo\tVER:pper\tlo', '.\tSENT\t.']]
[['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.']]
我的输出如下:
[ ['Moi\tPRO:PER\tmoi', 'je\tPRO:PER\tje', 'ne\tADV\tne', 'trouve\tVER:pres\ttrouver', 'pas\tADV\tpas', 'très\tADV\ttrès', 'esthétique\tADJ\testhétique', '.\tSENT\t.'], ['L’esthétique\tADJ\tL’esthétique', 'pêche\tNOM\tpêche', 'un\tDET:ART\tun', 'peu\tADV\tpeu', '.\tSENT\t.'], ['Cette\tPRO:DEM\tce', 'grosse\tADJ\tgros', 'prise\tNOM\tprise', 'là\tADV\tlà', '...\tPUN\t...'], ['Cette\tPRO:DEM\tce', 'prise\tNOM\tprise', 'puis\tADV\tpuis', 'la\tDET:ART\tle', 'borne\tNOM\tborne', ',\tPUN\t,', 'ça\tPRO:DEM\tcela', 'se\tPRO:PER\tse', 'voit\tVER:pres\tvoir', '.\tSENT\t.'], ['Derrière\tPRP\tderrière', 'la\tDET:ART\tle', 'télé\tNOM\ttélé', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'mais\tKON\tmais', '...\tPUN\t...'], ['Mais\tKON\tmais', 'vu\tVER:pper\tvoir', 'le\tDET:ART\tle', 'système\tNOM\tsystème', 'ça\tPRO:DEM\tcela', 'va\tVER:pres\taller', 'être\tVER:infi\têtre', 'difficile\tADJ\tdifficile', 'de\tPRP\tde', 'faire\tVER:infi\tfaire', 'plus\tADV\tplus', 'sobre\tADJ\tsobre', '!\tSENT\t!'], ['M\tNOM\tM', '.\tSENT\t.', 'Laudrel\tNAM\tLaudrel', 'est\tVER:pres\têtre', 'mort\tVER:pper\tmourir', 'hier\tADV\thier', 'soir\tNOM\tsoir', '.\tSENT\t.'], ['je\tPRO:PER\tje', 'viens\tVER:pres\tvenir', '2.2\tNUM\t@card@', ',\tPUN\t,', 'lo\tVER:pper\tlo', '.\tSENT\t.']]
[['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.'], ['je', 'venir', '@card@', ',', 'lo', '.']]
您可以使用
列表和\t
上的每个字符串来选择第三个元素。使用列表中的第一个示例:
l=[['M\tNOM\tM', '.\tSENT\t.', 'Laudrel\tNAM\tLaudrel'],['Derrière\tPRP\tderrière','la\tDET:ART\tle', 'télé\tNOM\tt']]
你可以做:
[[i.split('\t')[2] for i in subl] for subl in l]
[['M', '.', 'Laudrel'], ['Derrière', 'la', 'télé']]
每个子列表的第三个元素沿制表符('\t')拆分
以下解决方案与您的输出示例相匹配:
# -*- coding: utf-8 -*-
list_Pos = [
['M\tNOM\tM', '.\tSENT\t.', 'Laudrel\tNAM\tLaudrel'],
['Derrière\tPRP\tderrière','la\tDET:ART\tle', 'télé\tNOM\tt']
]
final_result = []
for sub_list in list_Pos:
final_result.append([r.split("\t")[2] for r in sub_list])
print(final_result)
输出:
[['M','.','Laudrel'],['derrière','le','t']]列出理解split()
,然后获取[2]
元素(第三个元素)
输出
[['M', '.', 'Laudrel'], ['derrière', 'le', 't']]
此外,如果您总是需要最后一个索引,请使用索引中的-1
[[i.split('\t')[-1] for i in subl] for subl in test_list]
基于原始编辑输出,您可以对子列表1长度范围内的每个子列表的每个元素使用列表理解(假设所有子列表的长度相同)
要仅获取第三个元素,请删除for循环并运行
lst1=[[item.split('\t')[2]用于sblst中的项]用于lst中的sblst]
,其中x刚刚设置为2。是否每个子列表都要被\t
拆分?我不理解您的预期输出。你能再解释一下吗?@yatu我只想用表格分割包含“M\tNOM\tM”的字符串,这就是为什么我要创建三个变量:第一、第二、第三,然后我希望在子列表中检索列表中每个字符串的第三个索引。更容易理解吗?我的答案符合你的要求吗?@Austin,我有一个子列表,每个列表包含一个字符串列表,如下所示:“M\tNOM\tM”,如果我在子列表中打印元素,我有以下配置:M NOM M M like column。我想检索每列的第三个元素。您已经更改了输入'Derriere!='Derrière
非常感谢,但这是我要检索的第三个元素,因为它首先是单词ii的引理。我想把索引改为2会让我找到合适的词。非常感谢。@mad_u1;-我这样做是为了不担心非拉丁字符,以便能够快速测试。感谢您抽出时间回复,我将尝试您的答案并返回给您。谢谢您确实提出的代码正在工作。谢谢。如果答案有帮助,别忘了接受,谢谢!谢谢,请不要忘记投票/接受/分享/喜欢/击掌。