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)
但它没有按预期工作。
实际上,您可以仅通过一种列表理解来实现:
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 中的所有重复值。