Python循环遍历两个集合以比较每个集合的所有元素

时间:2013-06-10 01:28:00

标签: python set

我正在尝试编写一个函数,当给定一组国家/地区名称和一组州名称时,将比较这两个集合,以查看是否至少有一个国家和一个以相同的三个字母开头的州。 / p>

我尝试了许多不同的方法来创建一个包含所有州和国家名称的前三个字母的新集,但我似乎无法让它工作。

非常感谢任何帮助!

    def StartsWithSameThreeLetters(x,y):
        common = set(state[:3] for state in x) and set(country[:3] for country in y)
        length = len(x) + len(y)
        if length != len(common):
            return True
        else:
            return False

如果x是州名称集合,y是国家/地区名称集合

1 个答案:

答案 0 :(得分:4)

您可以使用set comprehensions:

common = {country[:3] for country in countries} & {state[:3] for state in states}

如果你的Python安装太旧而无法使用它们,那么总是set()

set(country[:3] for country in countries)