Bedane antarane sawetara () lan xrange () ing Python

Pambuka

Artikel iki nggambarake Bedane antarane sawetara () lan xrange () ing Python. Loro-lorone range () lan xrange () fungsi digunakake kanggo nemtokake jumlah iterasi sing bakal ngalami daur ulang. Utamane kanggo puteran, cara kasebut digunakake kanggo nemtokake kisaran pengulangan puteran. Cara xrange () ora ana ing Python 3. Range () fungsi ing Python 2 nduweni fungsi sing padha karo fungsi xrange (). Range () iku umum kanggo loro Python 2 lan Python 3. Mulane, yen sampeyan planning nulis kode universal sing bakal mbukak ing loro versi Python iki, iku saranake nggunakake sawetara ().

jangkoan ()

Range () fungsi bakal ngasilake obyek sawetara iterable sing bakal ngandhani sistem sawetara kanggo daur ulang.

xrange()

Fungsi xrange () bakal ngasilake obyek generator. Objek iki mung bakal nyithak nomer (rentang) kanthi iterasi. Sampeyan uga kudu njaluk kisaran tartamtu sing sampeyan goleki. Mula fungsi iki asring diarani evaluasi kesed.

Sanajan loro fungsi kasebut katon padha lan bisa uga duwe konfigurasi sing padha, karakteristik lan cara implementasine beda. Kita bakal mbandhingake fungsi kasebut kanthi alasan:

  • Jinis Bali
  • memory
  • Panggunaan Operasi
  • kacepetan

Jinis Bali

Fungsi range() ngasilake obyek range lan fungsi xrange() ngasilake obyek xrange().

#Kode Python ing ngisor iki bakal mbantu ngerti bedane rong fungsi kasebut kanthi #respect kanggo jinis bali.

# nggawe variabel anyar lan miwiti sawetara
a = rentang (1, 10000)

# nggawe variabel anyar lan miwiti xrange ing
x = xrange (1, 10000)

#Saiki mriksa jinis bali saka loro fungsi range() lan xrange().
print ("Tipe bali saka sawetara () yaiku :")
print (jinis (a))

print ("Tipe bali saka xrange() yaiku:")
print (jinis (x))

output

Jinis bali saka range() yaiku:

Jinis bali saka xrange() yaiku:

memory

Nalika ngomong bab beda antarane rong fungsi, sawetara () lan xrange () ing syarat-syarat memori, kita mangerteni sing variabel sing nyimpen sawetara nggunakake sawetara () fungsi bener manggoni memori luwih saka variabel sing nyimpen xrange nggunakake xrange. () fungsi. A panjelasan prasaja kanggo iki bisa dadi kasunyatan sing jinis bali saka sawetara bener dhaftar lan jinis bali saka xrange minangka obyek. Dhaptar ngenggoni papan sing luwih akeh dibandhingake karo obyek, mula bedane papan sing dikuwasani.

#Python kode kanggo nuduhake prabédan antarane sawetara () lan xrange () bab memori

ngimpor sys

# nggawe variabel anyar lan miwiti sawetara
a = rentang (1, 10000)

# nggawe variabel anyar lan miwiti xrange ing
x = xrange (1, 10000)

#nggunakake fungsi getsizeof () ing a lan x kanggo mriksa endi sing luwih akeh.
#kaarep-arep manawa kisaran panyimpenan variabel, ing kasus iki, bakal ngenggoni ruang luwih akeh tinimbang #x
print ("Ukuran sing diwenehake nggunakake rentang () yaiku :")
print (sys.getsizeof (a))

print ("Ukuran sing diwenehake nggunakake xrange() yaiku:")
print (sys.getsizeof (x))

output

Ukuran sing diwenehake nggunakake range() yaiku:
80064

Ukuran sing diwenehake nggunakake xrange() yaiku:
40

Panggunaan Operasi

Ing klasifikasi iki, kita bakal katon ing operasi sing bisa Applied kanggo sawetara () lan xrange (). Kaya kasebut sadurunge, jinis bali saka sawetara () fungsi dhaftar. Mula, kita bisa ngetrapake kabeh fungsi lan operasi kasebut sing bisa ditrapake ing dhaptar. Ing tembung prasaja, kita bisa nambani sawetara () fungsi bali jinis kanggo dhaftar. Kerugian utama ing kene yaiku jinis bali saka xrange () minangka obyek, saéngga fungsionalitas dhaptar ora bisa ditrapake ing kene. Iki bener mbatesi jumlah fungsi sing bisa digandhengake karo xrange.

Kode #Python kanggo nuduhake prabédan antarane sawetara () lan xrange () babagan panggunaan operasi

# nggawe variabel anyar lan miwiti sawetara
a = rentang (1, 6)

# nggawe variabel anyar lan miwiti xrange ing
x = xrange (1, 6)

#Ngimplementasikake operasi irisan ing kene sing minangka operasi kunci dhaptar. Ing kasus sawetara (), kita # bakal entuk output tanpa kesalahan. Nanging, nalika operasi irisan dileksanakake ing xrange #variable, kesalahan bakal ditampilake.

print ("Dhaptar sawise ngiris nggunakake rentang yaiku :")
print (a [2:5])

print ("Dhaptar sawise ngiris nggunakake xrange yaiku :")
print (x [2:5])

error:
Traceback (telpon paling anyar pungkasan):
Berkas "1f2640dhunk3009dnu779snm4872 abmm3.py", baris 198, dicithak (x [2:5])
TypeError: indeks urutan kudu integer, dudu 'iris'

output

Dhaptar sawise ngiris nggunakake kisaran yaiku:
[3, 4, 5] Dhaptar sawise ngiris nggunakake xrange yaiku:

kacepetan

Akhire, kita bakal mbandhingaké sawetara () lan xrange () ing basis saka kacepetan eksekusi. Wiwit xrange () nggawe obyek generator, obyek iki mung Nilai sing bakal dibutuhake sak initialization puguh. Mangkono xrange () kaping pirang-pirang luwih cepet saka sawetara () nalika nerangake eksekusi loro fungsi.

Cathetan penting

  • Kaya kasebut sadurunge, iku penting banget kanggo elinga yen xrange () ora didhukung ing Python. Mulane, yen sampeyan pengin kode kanggo mbukak universal, tansah nggunakake sawetara ().
  • Yen urutan utawa koleksi sing pengin diulang utawa dilewati ora owah saka wektu, banjur sawetara () menehi asil luwih cepet dibandhingake karo xrange ().
  • Nalika nggunakake xrange (), fungsi kudu njupuk Nilai saka obyek generator lan mbangun obyek integer. Nanging karo sawetara (), kanthi otomatis menehi obyek integer nyata. Nanging, iku penting kanggo mbudidaya sing luwih memori bakal dikuwasani nalika nggunakake sawetara ().

 

Pengarang


komentar

Ninggalake a Reply

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani *

Situs iki nggunakake Akismet kanggo ngurangi spam. Sinau babagan proses data sampeyan.