我有几个列表,每个列表包含多个城市。我需要检查任意两个元素是否属于同一个列表。
简单示例:
list1 = ['London', 'Manchester', 'Liverpool', 'Edimburgh']
list2 = ['Dublin', 'Cork', 'Galway']
list3 = ['Berlin', 'Munich', 'Frankfurt', 'Paris', 'Milan', 'Rome', 'Madrid', 'Barcelona', 'Lisbon', ...]
list4 = ['Washington', 'New York', 'San Francisco', 'LA', 'Boston', ...]
预期结果:
> in_same_group('London', 'Liverpool')
> True
>
> in_same_group('Berlin', 'Washington')
> False
该函数被频繁调用,因此速度至关重要。最大的列表可能有多达1000个元素。
如何以最有效的方式实现它?
这是我到目前为止尝试过的方法,但速度太慢了:
def in_same_group(city1, city2):
same_group = False
for this_list in [list1, list2, list3...]:
if city1 in this_list and city2 in this_list:
return True
return same_group