我有两份 list .

L1 = ['worry not', 'be happy', 'very good', 'not worry', 'good very', 'full stop'] # bigrams list
L2 = ['take into account', 'always be happy', 'stay safe friend', 'happy be always'] #trigrams list

如果我仔细观察,L1有'not worry' 'good very',这是'worry not''very good'的完全相反的重复.

我需要从列表中删除这些反向元素.类似地,在L2中,'happy be always''always be happy'的反面,也需要删除.

我想要的最终结果是:

L1 = ['worry not', 'be happy', 'very good', 'full stop']
L2 = ['take into account', 'always be happy', 'stay safe friend']

我try 了一种解决方案

[[max(zip(map(set, map(str.split, group)), group))[1]] for group in L1]

但它没有给出正确的输出.

推荐答案

如果从末尾遍历列表,则可以使用列表理解来完成此操作

lst = L1[::-1] # L2[::-1]
x = [s for i, s in enumerate(lst) if ' '.join(s.split()[::-1]) not in lst[i+1:]][::-1]

# L1: ['worry not', 'be happy', 'very good', 'full stop']
# L2: ['take into account', 'always be happy', 'stay safe friend']

Python相关问答推荐

matplotlib + python foor loop

Python Pandas—时间序列—时间戳缺失时间精确在00:00

Discord.py -

仅使用预先计算的排序获取排序元素

在Django中重命名我的表后,旧表中的项目不会被移动或删除

SpaCy:Regex模式在基于规则的匹配器中不起作用

在Pandas 中以十六进制显示/打印列?

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

在不中断格式的情况下在文件的特定部分插入XML标签

对当前的鼹鼠进行编码,并且我的按键获得了注册

如何计算Pandas 中具有特定条件的行之间的天差

颂歌中的线性插值法(盖柯)

如何在函数签名中输入数据类字段

盒子图分析

在给定区间列表的情况下计算不重叠对的数量的最佳方法

使用Numpy进行重写For循环矢量化

拆分字符串,保留引用的子字符串

在函数中找不到第一个全局变量,导致错误.第二个全局变量不会导致错误?

设置gtuner计算机视觉时遇到问题

Polars:避免聚合中不允许窗口表达式的智能方法"