Сравнение двух генераторов в Python
Мне интересно об использовании==
при сравнении двух генераторов
Например:
x = ['1','2','3','4','5']
gen_1 = (int(ele) for ele in x)
gen_2 = (int(ele) for ele in x)
gen_1 а такжеgen_2 одинаковы для всех практических целей, и все же, когда я сравниваю их:
>>> gen_1 == gen_2
False
Я предполагаю, что==
здесь рассматривается какis
обычно есть, а так какgen_1 а такжеgen_2 расположены в разных местах памяти:
>>> gen_1
<generator object <genexpr> at 0x01E8BAA8>
>>> gen_2
<generator object <genexpr> at 0x01EEE4B8>
их сравнение оцениваетFalse
, Я прав в этом предположении? И любые другие идеи приветствуются.
И, кстати, я знаю, как сравнить два генератора:
>>> all(a == b for a,b in zip(gen_1, gen_2))
True
или даже
>>> list(gen_1) == list(gen_2)
True
Но если есть лучший способ, я хотел бы знать.