Paano Gumamit ng Pag-unawa sa Listahan sa Python

Paano Gumamit ng Pag-unawa sa Listahan sa Python

Ang napapanahong paggamit ng pag-unawa sa listahan sa Python ay maaaring gawing madali para sa iyo ang mga pagpapatakbo ng listahan ng umuulit. Bilang karagdagan sa pagiging isang solong linya, mas nababasa ito at gumaganap nang mas mahusay.





Gayunpaman, maaari kang magtrabaho kung hindi mo alam kung paano ito gamitin. Maaari itong maging mas nakakainis kung hindi mo alam kung saan ilalapat ito sa iyong code. Dito, ipapakita namin sa iyo kung paano gamitin ang pag-unawa sa listahan sa Python na may ilang mga halimbawa ng totoong buhay.





Ano ang Pag-unawa sa Listahan sa Python at Paano Ito Gumagana?

Ang paglikha ng isang listahan ng mga item sa Python ay madali. Gayunpaman, ang gawain ay maaaring maging isang medyo nakakapagod kapag kailangan mo upang makabuo ng isang listahan ng mga halaga o mga item mula sa pagpapatakbo ng matematika o string. Iyon ay kapag madaling gamitin ang pag-unawa sa listahan.





Ang isang kalamangan sa paggamit ng pagkaunawa sa listahan ay maaari kang magsagawa ng maraming mga operasyon sa isang solong listahan.

kung paano baguhin ang aking default na google account

Sa kaibahan, lumilikha ito ng mga bagong item at idinagdag ang mga ito sa isang walang laman na listahan na awtomatikong idineklara nito. Kaya sa halip na gumawa ng isang walang laman na listahan nang manu-mano at idagdag ito sa isang para sa loop, ang pag-unawa sa listahan ng Python ay nagbibigay-daan sa iyo na gawin ito nang awtomatiko nang hindi ka nag-aalala tungkol sa kung paano dumarating ang bagong listahan.



Ang salitang 'list comprehension' ay nagmula sa katotohanang ang lahat ng mga operasyon ay nasa isang listahan ng Python na nakatalaga sa isang pinangalanang variable. Tulad ng sinabi namin kanina, hinahayaan ka nitong magsagawa ng mga partikular na pagpapatakbo sa isang solong linya ng code. Pagkatapos ay idinagdag nito ang output sa isang bagong listahan.

Sa huli, maaari mo ring gamitin ang output ng isang pagkaunawa sa listahan para sa iba pang mga layunin. Iyon ay dahil nag-iimbak ito ng mga expression sa magkakahiwalay na variable. Kaya maaari kang mag-refer sa kanila sa paglaon.





Halimbawa, maaaring ikaw ay pag-scrap ng isang website gamit ang BeautifulSoup . Ipagpalagay na balak mong makuha ang pangalan ng lahat ng mga item at kanilang mga presyo mula sa website.

Napagpasyahan mong ilagay ang na-scrap na data sa isang CSV o isang file na Excel. Ang perpektong kasanayan ay upang i-scrape ang pangalan ng lahat ng mga item at kanilang mga presyo at ilagay ang pareho sa mga ito sa magkakahiwalay na mga haligi. Gayunpaman, ang paggamit ng isang pag-unawa sa listahan, sa kasong iyon, tinitiyak na mayroon kang na-scrap na data sa mga nakatuong variable. Maaari mo ring mai-convert ang mga nasabing variable sa isang Python DataFrame sa paglaon.





Tingnan ang halimbawa sa ibaba:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Kapag nakuha mo ang mga looped variable, maaari mo itong ilagay sa magkakahiwalay na mga haligi sa isang DataFrame gamit ang Python's Pandas.

Paano Lumikha at Gumamit ng Listahan ng Pag-unawa sa Python

Ang para sa loop ay isang mahalagang umuulit sa isang listahan ng pagkaunawa. Pangkalahatan, ang isang pagkaunawa sa listahan sa Python ay kumukuha ng format na ito:

ComprehensionVariable = [expression for items in list]

Pagpi-print Pag-unawaVariable ay naglalabas ng resulta ng code sa itaas bilang isang listahan.

Gayunpaman, mag-ingat na hindi malito ang isang pagkaunawa sa listahan sa isang bukas para sa loop

Halimbawa, sabihin natin gumamit ng bukas para sa loop upang makakuha ng isang listahan ng lahat ng mga multiply ng tatlo sa pagitan ng 1 at 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Upang ihambing ang dalawa, gawin natin ang parehong bagay gamit ang isang pagkaunawa sa listahan:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Maaari mong gamitin ang isang pag-unawa sa listahan na may kondisyon na pahayag din. Ang halimbawa ng code sa ibaba ay naglilimbag ng lahat ng mga kakaibang numero sa pagitan ng 1 at 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Ngayon, isulat din natin ang code sa itaas gamit ang isang bukas para sa loop:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Kaugnay: Paano Magdugtong ng Listahan sa Python

Ang isang pag-unawa sa listahan ay tumatanggap din ng pugad kung mga pahayag:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Tumatagal din ito para sa loop:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Maaari ka ring magkaroon ng isang simpleng pugad para sa loop sa isang pagkaunawa sa listahan:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Maaari mong manipulahin ang mga string gamit ang pag-unawa sa listahan ng Python din. Tingnan natin ang isang salitang pag-unawa sa salita sa ibaba:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Ang isang pag-unawa sa listahan ay maaari ring tanggapin ang isang pagpapaandar na nagsasagawa ng isang tukoy na operasyon. Ipasok natin ang isang pagpapaandar na multiplier na makakakuha ng kahit na mga numero sa isang pagkaunawa sa listahan upang makita kung paano ito gumagana:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Maaari mo pa ring isulat ang code sa itaas sa isang solong pag-andar nang hindi gumagamit ng pag-unawa. Ngunit ang isang pag-unawa sa listahan ay kapaki-pakinabang kapag kailangan mong magsagawa ng maraming mga pag-ulit at ilagay ang bawat isa sa mga magkakahiwalay na variable.

Halimbawa, maaari kang magsagawa ng isa pang operasyon sa n at magkaroon ng isang nakalaang variable para dito. Baguhin natin ang pag-unawa sa itaas upang makabuo ng kahit na mga numero mula sa mga kakaiba:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Diksyonaryo at Itakda ang Mga Pag-unawa

Bilang karagdagan sa isang pagkaunawa sa listahan, nag-aalok din ang Python ng isang diksyunaryo at isang hanay ng pag-andar ng pag-unawa.

Tingnan ang halimbawang pag-unawa ng diksyunaryo sa ibaba upang makita kung paano ito gumagana:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Ang code sa itaas ay umuulit sa listahan ng mga numero sa pagitan ng 1 at 9 at ginagawa silang mga susi. Sinasabi nito sa Python na i-multiply ang bawat susi ng dalawa. Panghuli, ipinakita nito ang mga resulta ng pagpapatakbo na iyon bilang mga kaukulang halaga para sa bawat key sa nagresultang array.

Kaugnay: Paano Gumagawa ang Mga Array at Listahan sa Python

Ang isang itinakdang pag-unawa ay medyo katulad sa isang pagkaunawa sa listahan. Narito ang isang halimbawa ng isang itinakdang pag-unawa:

kalahati paraan point sa pagitan ng dalawang mga address
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Gayunpaman, hindi katulad ng pag-unawa sa listahan, ang pagtatakda ng pag-unawa ay aalis ng mga duplicate:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Maaari mong subukan ang code sa itaas gamit ang isang pag-unawa sa listahan upang makita kung paano magkakaiba ang mga ito.

Maaari Mo Bang Magamit ang Pag-unawa sa Listahan Tuwing Oras?

Sinuri namin ang iba't ibang mga halimbawa ng pagkaunawa sa listahan at kung saan mo magagamit ang mga ito. Gayunpaman, tulad ng anumang ibang pamamaraan ng Python, ang paggamit-case ng isang pag-unawa sa listahan ay nakasalalay sa tukoy na problema na nais mong lutasin. Samakatuwid dapat mo lamang itong gamitin kung mainam ito para sa tukoy na problema na nais mong malutas.

Isa sa mga layunin ng pag-unawa sa listahan ay upang gawing simple ang iyong code at gawin itong mas mabasa. Kaya, tiyaking maiiwasan mo ang pagiging kumplikado kapag nakikipag-usap dito. Halimbawa, ang isang mahabang pag-unawa sa Python ay maaaring maging kumplikadong basahin. Natalo nito ang layunin nito.

Magbahagi Magbahagi Mag-tweet Email Paano Gumamit ng Mga Pag-unawa sa Listahan ng Python (At Kailan Hindi Ito Gagamitin)

Narito ang lahat ng kailangan mong malaman tungkol sa paggamit ng kamangha-manghang tampok na ito ng Python na magpapalakas sa iyong pagiging produktibo at kakayahang mabasa ang code magdamag.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Sawa
Tungkol sa May-akda Idisou Omisola(94 na artikulong nalathala)

Si Idowu ay madamdamin tungkol sa anumang matalinong tech at pagiging produktibo. Sa kanyang libreng oras, naglalaro siya kasama ang pag-coding at paglipat sa chessboard kapag siya ay naiinip, ngunit gusto din niya ang paglayo mula sa nakagawiang gawain sa isang sandali. Ang kanyang hilig sa pagpapakita sa mga tao ng paraan sa paligid ng modernong tech ay nag-uudyok sa kanya na magsulat pa.

Higit pa Mula sa Idowu Omisola

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe