(i for i in range(5)) ile [i for i in range(5)] Arasındaki Fark?

Başlıkta da söylediğim gibi bu ikisi arasındaki fark nedir? Çalıştırdığım zaman birisi sayıları döndürüyor diğeri ise “<generator object at 0x004A3CF0>” diye bir çıktı döndürüyor. İkinci yazdığımın ne amaçla yazıldığını biliyorum ama birincisini anlamadım. İkincisi şunun ile aynı işlemi yapıyor:

a = []
for i in range(5):
    a.append(i)

İlk yazdığımı yani (i for i in range(5))'i ve döndürdüğü değerin ne işe yaradığını açıklayabilir misiniz?

[i for i in range(5)] bir liste döndürür. Bir listeyi nasıl kullanıyorsanız aynı şekilde kullanabilirsiniz.

Diğeri ise bir generator döndürür. Ona ekleme veya çıkarma yapamazsın. Çağırdıkça veri gönderir. Şurada daha iyi açıklanmış olmalı:

1 Beğeni