Mga Python List Comprehension Tricks na Dapat Mong Malaman!
Isa sa mga pinaka-kapaki-pakinabang na kasanayan na maaari mong matutunan bilang isang Python programmer ay ang paggamit ng list comprehension. Hindi lamang ito nagpapadali ng iyong code, kundi pinapabilis din nito ang iyong workflow. Pero alam mo ba na may mga ilang Python list comprehension tricks na makakatulong sa iyo upang maging mas epektibo at mas maligaya sa pag-cocode? Kung hindi, patuloy lang sa pagbabasa at matutunan mo kung paano gamitin ang mga tricks na ito upang gawing mas malinis at mas madaling basahin ang iyong code!
Ano ang List Comprehension sa Python?
Bago tayo dumako sa mga tricks, importante munang malaman kung ano ang list comprehension. Sa Python, ang list comprehension ay isang eleganteng paraan upang lumikha ng mga bagong listahan gamit ang isang simpleng syntax. Sa halip na gumamit ng mga regular na loop tulad ng for loop, maaari kang gumamit ng isang compact na syntax para mag-iterate sa mga iterable at gumawa ng listahan.
Halimbawa, kung gusto mong gumawa ng listahan ng mga numero mula 1 hanggang 5, ang isang basic na list comprehension ay ganito:
numbers = [x for x in range(1, 6)] print(numbers)
Ang code na ito ay magpi-print ng: [1, 2, 3, 4, 5]
Trick 1: Paggamit ng Conditional Logic sa List Comprehension
Isa sa mga pinaka-cool na tricks sa list comprehension ay ang paggamit ng kondisyon. Ang list comprehension ay hindi lamang ginagamit para gumawa ng mga simpleng listahan, maaari rin itong maglaman ng mga kondisyon upang mapili lang ang mga partikular na elemento mula sa iterable.
Halimbawa, kung gusto mong gumawa ng listahan ng mga even numbers mula 1 hanggang 10, maaari mong gawin ito gamit ang conditional statement sa loob ng list comprehension:
even_numbers = [x for x in range(1, 11) if x % 2 == 0] print(even_numbers)
Ang code na ito ay magpi-print ng: [2, 4, 6, 8, 10]
Trick 2: Paggamit ng Multiple For Loops
Isa pang trick na maaaring hindi alam ng karamihan ay ang paggamit ng multiple for loops sa isang list comprehension. Kapag nag-iterate ka sa mga nested loops, maaari mong gamitin ang multiple for loops sa loob ng isang list comprehension upang gawing mas compact at eleganteng ang iyong code.
Halimbawa, kung gusto mong gumawa ng listahan ng mga coordinate pairs mula 1 hanggang 3, maaari mong gamitin ang nested for loops:
coordinates = [(x, y) for x in range(1, 4) for y in range(1, 4)] print(coordinates)
Ang code na ito ay magpi-print ng: [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Trick 3: List Comprehension sa Pag-filter ng Data
Isa pang kapaki-pakinabang na trick ng list comprehension ay ang paggamit nito sa pag-filter ng data. Halimbawa, kung gusto mong i-filter ang mga hindi kapaki-pakinabang na elemento mula sa isang listahan, maaari mong gamitin ang list comprehension para mabilis na alisin ang mga unwanted items.
Halimbawa, kung may isang listahan ng mga numero at gusto mong alisin ang mga number na hindi divisible sa 3:
numbers = [10, 15, 23, 30, 45, 50] filtered_numbers = [num for num in numbers if num % 3 == 0] print(filtered_numbers)
Ang code na ito ay magpi-print ng: [15, 30, 45]
Trick 4: List Comprehension para sa Pag-manipula ng Strings
Maaari mo ring gamitin ang list comprehension para sa pag-manipula ng mga string. Halimbawa, kung gusto mong gawing uppercase ang bawat letra ng bawat string sa isang listahan, maaari mong gamitin ang list comprehension upang gawin ito ng mabilis at madaling paraan.
words = ["hello", "world", "python"] uppercase_words = [word.upper() for word in words] print(uppercase_words)
Ang code na ito ay magpi-print ng: ['HELLO', 'WORLD', 'PYTHON']
Trick 5: List Comprehension na may Nested Conditionals
Isa pang trick na makakatulong sa iyong code ay ang paggamit ng nested conditionals. Maaari mong gamitin ang conditional logic hindi lamang sa isang level kundi sa loob ng isa pang conditional statement upang magbigay ng mas detalyadong filtering.
Halimbawa, kung gusto mong gumawa ng listahan ng mga numero na divisible sa 2 o 3 mula sa 1 hanggang 20, maaari mong gamitin ang nested conditional logic:
numbers = [x for x in range(1, 21) if x % 2 == 0 if x % 3 == 0] print(numbers)
Ang code na ito ay magpi-print ng: [6, 12, 18]
Trick 6: Paggamit ng List Comprehension sa Paglikha ng Dictionaries
Hindi lang listahan ang maaaring gawin gamit ang list comprehension, kundi pati dictionaries! Kung gusto mong gumawa ng dictionary mula sa isang listahan ng mga tuple, maaari mong gamitin ang dictionary comprehension upang gawing mas simple ang iyong code.
pairs = [("a", 1), ("b", 2), ("c", 3)]
dict_from_pairs = {key: value for key, value in pairs}
print(dict_from_pairs)
Ang code na ito ay magpi-print ng: {'a': 1, 'b': 2, 'c': 3}
Trick 7: Pag-optimize ng List Comprehension sa Pagkakaroon ng Malaking Data
Kung ikaw ay nagtatrabaho sa isang malaking dataset at nais mong mag-optimize ng iyong list comprehension, maaari mong gamitin ang generator expressions upang mapabuti ang performance. Ang generator expressions ay katulad ng list comprehension, ngunit hindi nila ipinapakita ang buong listahan nang sabay-sabay, kaya nakakatipid sila sa memory.
numbers = (x for x in range(1, 1000000) if x % 2 == 0)
for num in numbers:
print(num)
Ang code na ito ay magpapakita ng mga even numbers mula 1 hanggang 999,999 nang hindi iniimbak ang buong listahan sa memorya, kaya mas mabilis at mas efficient ito.
Trick 8: Pag-apply ng Function sa mga Elemento ng Listahan
Ang isang simpleng trick na maaari mong gawin gamit ang list comprehension ay ang pag-apply ng isang function sa bawat elemento ng isang listahan. Halimbawa, kung mayroon kang listahan ng mga numero at gusto mong i-square ang bawat numero, maaari mo itong gawin gamit ang list comprehension at ang built-in na map() function:
numbers = [1, 2, 3, 4, 5] squared_numbers = [x**2 for x in numbers] print(squared_numbers)
Ang code na ito ay magpi-print ng: [1, 4, 9, 16, 25]
Konklusyon
Ang paggamit ng Python list comprehension ay isang mahusay na paraan upang gawing mas malinis, mas compact, at mas epektibo ang iyong code. Sa mga tricks na ito, makikita mo kung paano mas mapapadali ang iyong programming workflow at mas madali mong magagamit ang iba't ibang mga techniques upang gawing mas powerful at flexible ang iyong mga Python programs. Kaya't huwag mag-atubiling gamitin ang mga list comprehension tricks na ito at i-explore pa ang iba pang mga capabilities ng Python!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!