gpt4 book ai didi

python - 从列表中以相反的顺序删除短语

转载 作者:行者123 更新时间:2023-12-05 00:51:11 24 4
gpt4 key购买 nike

我有两个列表。

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 有 '不担心' 'good very''worry not' 的完全相反的重复和'非常好'

我需要从列表中删除这些颠倒的元素。同样在 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']

我尝试了一种解决方案

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

但它没有给出正确的输出。我应该为二元组和三元组反向重复删除编写不同的函数,还是有一种 Pythonic 方式以更快的方式执行此操作,因为我必须为大约 10K + 字符串运行它。

最佳答案

如果您从末尾迭代列表,您可以使用列表推导来做到这一点

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 - 从列表中以相反的顺序删除短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72726621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com