Python xrange kumpara sa saklaw

Python Xrange Vs Range



Hanggang sa bersyon ng Python 2.x, mayroong isang kabuuan ng dalawang mga kalakip na pamamaraan na ginamit sa wikang ito upang makabuo ng listahan ng mga integer sa loob ng isang ibinigay na saklaw. Ang dalawang pamamaraan ay nakalista sa ibaba:

saklaw ()
xrange ()







Ang pagsulong, kasama ang pinakabagong bersyon ng Python (3 pataas), ang range () ay naatras, at ang xrange () ay binago sa range (). Ngayon sa Python 3, mayroon lamang isang pag-andar para sa pamamaraang ito, ibig sabihin, saklaw (). Sa Python 3, ang function na range () ay isa pang paraan ng pagpapatupad ng mas lumang bersyon ng xrange () ng python 2.x. Dito, maiuugnay natin ang dalawa.



Xrange ()

Ang xrange () ay ginagamit upang lumikha ng isang pagkakasunud-sunod ng bilang tulad ng paggana ng saklaw ().



Syntax

Ang ginamit na syntax upang tukuyin ang xrange () ay:





ayos(umpisahan,magtapos,hakbang)

Ginagamit ang pagpapaandar upang tukuyin ang saklaw ng mga bilang na nagsisimula sa (kasama) hanggang sa wakas (hindi kasama).

Mga Parameter

Ang sumusunod ay ang listahan ng mga kinakailangang parameter:



& emsp; Start: Panimulang posisyon ng pagkakasunud-sunod ng bilang
& emsp; Wakas: Posisyon ng pagtatapos ng pagkakasunud-sunod ng bilang
& emsp; Hakbang: Ang pagkakaiba sa pagitan ng dalawang magkakasunod na numero sa serye.

Mga halimbawa

Sa sumusunod na halimbawa, susuriin namin ang mga paraan upang tukuyin ang xrange.

Dito, tutukoy lamang namin ang posisyon ng pagtatapos.

Kaya, ang halaga ng pagtatapos ay itinakda bilang 5, at pagkatapos makuha namin ang posisyon ng pagtatapos na naka-print, tulad ng ipinakita sa ibaba:

Ngayon, makikita natin ang pamamaraan ng saklaw ng pagtawag, ang syntax na tatawagan ay ang:

>>>x= ayos(magtapos)

Pagkatapos ay ipapalimbag namin ito.

Makukuha namin ang saklaw sa output, tulad ng ipinakita sa itaas.

Ngayon, tutukuyin namin ang parehong panimula at mga endpoint. Dito, ang panimulang punto ay 2, at ang puntong nagtatapos ay 5. Pagkatapos ay nai-print namin ang mga posisyon ng pagsisimula at pagtatapos, tulad ng ipinakita sa ibaba:

Pagkatapos nito, lilikha kami ng isang pagkakasunud-sunod ng mga numero mula sa aming mga panimulang at pagtatapos na puntos, ibig sabihin, 2 hanggang 5.

>>>at= ayos(umpisahan,magtapos)

Panghuli, susuriin namin ang paraan ng pagtukoy sa panimulang punto, hakbang, at ang puntong nagtatapos. Kapag natukoy na namin ang lahat ng tatlong mga parameter; tatawagan namin sila na katulad ng pamamaraang ipinakita sa ibaba:

Ngayon, upang tawagan ang xrange para sa tatlong mga parameter na ito, gagamitin namin ang sumusunod na syntax:

>>>Kasama si= ayos(umpisahan,hakbang,magtapos)

Saklaw ()

Ginagamit ang saklaw () upang lumikha ng isang listahan at isang mas mabilis na pagpapaandar para sa maraming mga pag-ulit.

Syntax

Ginagamit ang sumusunod na syntax:

>>> saklaw(umpisahan,magtapos,hakbang)

Mga halimbawa

Para sa unang kaso, tutukuyin namin ang halaga ng pagtatapos. Ang ginamit na syntax para dito ay:

>>> saklaw(magtapos)

Kaya, sa halimbawang ibinigay sa ibaba, gagamitin namin ang 3 bilang halaga ng pagtatapos ng saklaw. Kapag nai-print namin ito, ibinabalik nito ang mga halaga, hindi kasama ang pangwakas na halaga.

Sa kasunod na halimbawa, gumagamit kami ng halimbawa ng paglalarawan ng simula at pagtatapos na punto. Magsisimula ang halaga mula 1 at magtatapos sa 10 (sa pamamagitan ng hindi ito pagbubukod). Ang panimulang punto ay kasama, ngunit ang puntong nagtatapos ay tinanggal. Ang syntax ay katulad ng naibigay sa ibaba:

>>> saklaw (umpisahan,magtapos)

Kaya, tinutukoy namin ang panimulang punto at pagkatapos ang endpoint, na kung saan ay 1 at 10, ayon sa pagkakabanggit.

Ngayon, sa kasunod na halimbawa, magkakaroon kami ng hakbang na paggana. Ang pagpapaandar na tumutukoy sa agwat sa pagitan ng anumang dalawang puntos sa loob ng pagkakasunud-sunod. Magsisimula ang halaga mula 0 at magtatapos sa 10 (sa pamamagitan ng hindi ito pagbubukod). Ang ginamit na syntax ay ibinibigay sa ibaba:

>>> saklaw (umpisahan,hakbang,magtapos)

Ang halimbawa ay ibinigay sa ibaba, kung saan ang 2 ay ang halaga ng hakbang.

Mga kalamangan

saklaw ()

Mas mabilis ito kung ang mga pag-ulit ay dapat gawin nang maraming beses. ang range () ay mayroon lamang mga real-time na halaga ng integer object. Sa mga tuntunin ng memorya, hindi ito mahusay na maisagawa.

xrange ()

Kailangan nitong likhain muli ang integer object sa bawat oras. Ang xrange () ay hindi dahil hindi ito sumusuporta sa mga hiwa at pamamaraan ng listahan. Ang xrange () ay tumatagal ng parehong halaga ng memorya. Kaya, tungkol sa pagganap ay nababahala, lalo na kapag ang mga gumagamit ay umuulit sa isang mas malaking halaga ng saklaw, ang xrange () ay gumaganap nang mas mahusay.

Mga pagkakatulad sa pagitan ng Python 2 at Python 3 saklaw at xrange

Ang xrange ng Python 2 ay may isang naglalarawang representasyon sa anyo ng string, na halos kapareho sa saklaw na halaga ng object ng Python 3.

Ang halaga ng xrange () sa Python 2 ay iterable, sa gayon ay tumunog () sa Python 3.

Ang xrange () at range () ay parehong may mga hakbang sa hakbang, pagtatapos, at panimulang punto. Sa pareho ng mga kaso, ang hakbang ay isang opsyonal na patlang, sa gayon ang halaga ng pagsisimula.

Parehong xrange ng Python 2 at 3 haba ng suporta na maaaring ma-index sa pasulong o pabalik na pagkakasunud-sunod. Narito ang isang halimbawa ng pareho:

Hindi pagkakapareho sa pagitan ng saklaw () at xrange ()

Dahil ang xrange () ay sinusuri lamang ang object ng generator na may mga halagang kinakailangan ng tamad na pagsusuri, mas mabilis itong ipataw sa saklaw (). tumutulong ang range () na ibalik ang listahan at mayroong lahat ng mga bagay na maaaring magamit, samantalang ang xrange () ay nagbabalik ng mga bagay na nauugnay sa isang listahan at hindi mailalapat sa kanila upang mabilang namin ito bilang isang kawalan.

Ang variable na ginamit sa range () na function ay nag-iimbak ng halaga ng saklaw at sa gayon ay tumatagal ng maraming memorya kumpara sa xrange () na tumatagal lamang ng ilan sa memorya dahil sa mga variable. ibinalik ng range () ang isang saklaw na bagay samantalang, ang xrange () ay nagbabalik ng isang object ng generator.

Ang saklaw (1, 7, 2) na function ay ibabalik ang output [1, 3, 5] at ang input xrange (1, 7, 2) ay magbubunga ng output [1, 3, 5]. Iyon ang paraan kung paano natin maipapalagay na magkatulad sila sa pattern.

Konklusyon

saklaw () at xrange () parehong may iba't ibang mga katangian, tulad ng tinalakay sa itaas. Ang lahat ng mga paghahambing na nabanggit sa tutorial na ito, kasama ang mga halimbawa, ay makakatulong para sa mga mambabasa na pumili ng mas mahusay sa kanilang ginustong pamamaraan batay sa kanilang mga kinakailangan.