我刚刚开始学习Python,并一直在努力解决此问题(以及如何在标题中对其进行描述):
假设有一个名称列表,例如:
['Ben', 'Benjamin', 'Jenny', 'Alice', 'Alexandra', 'Alex', ...]
我得到了一个“名称别名对”,如下所示:
[['Benjamin', 'Ben'], ['Alexandra', 'Alex'], ['Jennifer', 'Jenny'], ...]
如何查找列表中是否存在以及哪些重复的名称?
例如。 Ben,Benjamin 是重复的, Alex,Alexandra 是重复的,但 Jenny 不是。
我正在考虑遍历名称列表,看看别名对中是否有匹配项。如果是这样,请再次进行迭代,并找到对应部分是否也存在。我想知道是否有更好的方法可以做到这一点。
答案 0 :(得分:3)
将您的列表转换为set
:
names = frozenset(names)
然后您可以轻松地对每对进行检查:
for full, short in name_pairs:
if full in names and short in names: