两个列表不区分大小写的比较

vel*_*udy 2 python comparison list

我有 2 个列表。第一个是list_A = ['Sasi', 'Babu', 'kuttapppan', 'mathayi'],我的第二个列表是list_B = ['Raman', 'Kesavan', 'sasi', 'unni', 'Kuttappan'].

我想比较这两个列表并确定第二个列表中重复的值,无论它是以大写字母还是小写字母开头。我尝试了以下方法:

if not [name for name in list_A if name in list_B]:
     print name
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作。

GGG*_*ser 5

实际上,您可以仅通过一种列表理解来实现:

list_A = ['Sasi', 'Babu', 'kuttappan', 'mathayi']
list_B = ['Raman', 'Kesavan', 'sasi', 'unni', 'Kuttappan', 'SaSi']

duplicated = [B for B in list_B if B.lower() in (x.lower() for x in list_A)]
print(duplicated)
Run Code Online (Sandbox Code Playgroud)

这样它在比较小写的同时返回原始值。使用集合将返回小写的值并删除 list_B 中的所有重复值。