Skip to main content
 首页 » 编程设计

python之如何避免比较列表中的重复字符串

2025年05月04日18luoye11

我有一个大约一百个字符串的列表,每个字符串在 2 个 for 循环中相互比较,这里是代码的一个非常基本的概述:

string_list = ["PII", "AZO", "CVCO", "MOD"] 
 
for x in string_list: 
    for y in string_list: 
        if x != y: 
            print (x, y) 

打印:

PII AZO 
PII CVCO 
PII MOD 
AZO PII 
AZO CVCO 
AZO MOD 
CVCO PII 
CVCO AZO 
CVCO MOD 
MOD PII 
MOD AZO 
MOD CVCO 

如您所见,很多字符串被比较了两次(PII - AZO 和 AZO - PII 等)

我一直在尝试弄清楚如何使用 2 个计数变量来避免这个问题,但我挠头,必须有一种更简单/pythonic 的方法来做到这一点,所以没有重叠的字符串比较,有谁知道如何要做到这一点?

Python 3,谢谢。

编辑:

预期结果:

PII AZO 
PII CVCO 
PII MOD 
AZO CVCO 
AZO MOD 
CVCO MOD 

请您参考如下方法:

使用itertools.combinations() :

>>> string_list = ["PII", "AZO", "CVCO", "MOD"] 
>>> from itertools import combinations 
>>> for a, b in combinations(string_list, 2): 
...     print(a, b) 
...  
PII AZO 
PII CVCO 
PII MOD 
AZO CVCO 
AZO MOD 
CVCO MOD 

您生成的版本 permutations相反。