Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从列表列表中提取部分重复项;返回单个匹配项,并记录每个副本的来源;python_Python_Text Processing - Fatal编程技术网

从列表列表中提取部分重复项;返回单个匹配项,并记录每个副本的来源;python

从列表列表中提取部分重复项;返回单个匹配项,并记录每个副本的来源;python,python,text-processing,Python,Text Processing,我有以下格式的列表: L = ['apples oranges x', 'bananas apples y', 'apples oranges z'] 对于L中的每个项目,如果item.split()[0:2]与另一个项目匹配。split()[0:2](即“Apple oranges”与“Apple oranges”)匹配,则我需要输出单个项目。split()[0:2]后跟记录部分重复行原点的标记。标签来自每个项目的索引3(即x、y或z) 因此,L的输出是L2: L2

我有以下格式的列表:

L = ['apples oranges  x',
     'bananas apples  y',
     'apples oranges  z']
对于L中的每个项目,如果item.split()[0:2]与另一个项目匹配。split()[0:2](即“Apple oranges”与“Apple oranges”)匹配,则我需要输出单个项目。split()[0:2]后跟记录部分重复行原点的标记。标签来自每个项目的索引3(即x、y或z)

因此,L的输出是L2:

L2 = ['apples oranges x z',
     'bananas apples y']
有什么想法吗

d = collections.defaultdict(list)

for line in L:
    name, value = line.rsplit(' ',1)
    d[name].append(value)
然后你会有这样的口述:

{'bananas apples ': ['y'], 'apples oranges ': ['x', 'z']}
因此,您只需格式化键和值:

[key + ' '.join(values) for key, values in d.items()]
结果将是:

['bananas apples y', 'apples oranges x z']
然后你会有这样的口述:

{'bananas apples ': ['y'], 'apples oranges ': ['x', 'z']}
因此,您只需格式化键和值:

[key + ' '.join(values) for key, values in d.items()]
结果将是:

['bananas apples y', 'apples oranges x z']

非常简洁,解释得很好。我在看Python文档上的其他内容时,遇到了这个异常相似的示例@user183037这是defaultdict的一个常见用法:)非常简洁,解释得很好。我在Python文档中查看了其他内容,遇到了这个异常相似的示例@user183037这是defaultdict的常见用法:)