Python:逐元素遍历并比较2个元组列表

我已经努力了几个小时,无法解决问题,所以请帮助我!我有2个包含一些元组的列表。

list_1 = [[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('apple', 'NN')], [('This', 'DT'), ('Should', 'MD'), ('be', 'VB'), ('taught', 'VBN'), ('at','IN'), ('school', 'NN')], [('you', 'PRP'), ('might', 'MD'), ('take', 'VB'), ('them', 'PRP')]]

list_2 = [[('This', 'DT'), ('is', 'VBN'), ('an', 'DT'), ('apple', 'NNS')], [('This', 'DT'), ('Should', 'VB'), ('be', 'VB'), ('taught', 'VBN'), ('at','IN'), ('school', 'NNP')], [('you', 'PRP'), ('might', 'MD'), ('take', 'VB'), ('them', 'PRP')]]

我想比较每个句子的每个元组list_1list_2元素明智的,仅返回具有不同标签的元组。

def get_similarity():
        for list_1_sentence, list_2_sentence in zip(list_1, list_2):
            if len(list_1) != len(list_2):
                try:
                    raise Exception('this is an exception, some tags are missing')
                except Exception as error:
                    print('caught this error : ', repr(error))
            else:
                return [(x, y) for x, y in zip(list_1_sentence, list_2_sentence) if x != y]
                
get_similarity()

问题在于它返回不同的元组,但是仅对于第一句话:

[(('is', 'VBZ), ('is', 'VBN)), ('apple', 'NN'), ('apple', 'NNS'))]

为什么不遍历所有句子?

阿贾克斯1234

您可以尝试以下方法:

list_1 = [[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('apple', 'NN')], [('This', 'DT'), ('Should', 'MD'), ('be', 'VB'), ('taught', 'VBN'), ('at','IN'), ('school', 'NN')], [('you', 'PRP'), ('might', 'MD'), ('take', 'VB'), ('them', 'PRP')]]

list_2 = [[('This', 'DT'), ('is', 'VBN'), ('an', 'DT'), ('apple', 'NNS')], [('This', 'DT'), ('Should', 'VB'), ('be', 'VB'), ('taught', 'VBN'), ('at','IN'), ('school', 'NNP')], [('you', 'PRP'), ('might', 'MD'), ('take', 'VB'), ('them', 'PRP')]]
final_tags = list(filter(lambda x:x, [[c for c, d in zip(a, b) if c[-1] != d[-1]] for a, b in zip(list_1, list_2)]))

输出:

[[('is', 'VBZ'), ('apple', 'NN')], [('Should', 'MD'), ('school', 'NN')]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较元组元素列表python

元组中的逐元素比较以返回集合集-python

比较 2 个元组列表

Python比较2个列表,其中填充了3个元组

Python:比较2个大小不同的元组的列表

遍历两个列表以在python中获取元组中的元素

使用Python 2比较2个列表的所有元素

如何遍历列表的元组列表,并在python中一个接一个地获取所有元素?

比较2个相同大小的元组列表:比较并交换

比较元组python的列表

比较列表中元组的第二个元素

Python 将 4 元组列表转换为三个 2 元组,加入元组中的最后一个元素

比较列表中的元组元素

元组朱莉娅向量的逐元素比较

比较2个元素并遍历len(List)-1时使列表索引超出范围

Python:遍历多个列表并创建一个元组

Python循环遍历元组列表

如何比较2个元组的字典以生成此字典列表?

比较基于python的两个元组列表

比较不同列表python中两个元组的项目

使用列表理解的2个元素的元组列表

遍历元组列表,独立调用元素

元组比较中的python列表

一次遍历 Python 中的 2 个列表 x 个元素?

比较2个python列表,最多n-2个元素

Python:zip() 在列表内的元组内返回两个列表,而不是每个元素的元组列表

如何在Python的各自列表中比较同一索引中2个列表中的元素?

比较元组列表中的几个元素

在Python 3.6中使用列表推导来遍历并比较两个句子的依赖三元组时的语法错误