在Python的列表中查找一对字符串

时间:2018-08-20 18:19:08

标签: python algorithm types

我刚刚开始学习Python,并一直在努力解决此问题(以及如何在标题中对其进行描述):

假设有一个名称列表,例如:

['Ben', 'Benjamin', 'Jenny', 'Alice', 'Alexandra', 'Alex', ...]

我得到了一个“名称别名对”,如下所示:

[['Benjamin', 'Ben'], ['Alexandra', 'Alex'], ['Jennifer', 'Jenny'], ...]

如何查找列表中是否存在以及哪些重复的名称?
例如。 Ben,Benjamin 是重复的, Alex,Alexandra 是重复的,但 Jenny 不是。

我正在考虑遍历名称列表,看看别名对中是否有匹配项。如果是这样,请再次进行迭代,并找到对应部分是否也存在。我想知道是否有更好的方法可以做到这一点。

1 个答案:

答案 0 :(得分:3)

将您的列表转换为set

names = frozenset(names)

然后您可以轻松地对每对进行检查:

for full, short in name_pairs:
    if full in names and short in names: