Vadovėlis/Pažangios funkcijos

Iš Pitonas.

Pažangesnės funkcijos

...arba programuoti Python profesionaliau

Papasakosiu tau apie keletą neįtikėtinų funkcijų ir gudrybių, kurios padės supaprastinti užduočių atlikimą. Pradėkime :)

Rikiavimas sorted()

Anksčiau rodžiau rikiavimo funkciją su sąrašais. Sąrašo funkcija sąrašas.sort() modifikuoja savo elementus juos surikiuodamas. Taip kintamasis pakeičia savo reikšmę. Python taip pat turi funkciją sorted() kuri grąžina naują surikiuotą rezultatą, nepakeisdama originalaus kintamojo. Pažiūrėkim, kaip tai veikia:

# susikuriame sąrašą su atsitiktiniais skaičiais
sąrašas = [3,1,5,23,0]
# sorted grąžina surikiuotą sąrašą, kuri priskiriame naujajam kintamajam.
surikiuotas_sąrašas = sorted(sąrašas)

# atsispausdiname rezultatą. Matysi, kad kintamasis sąrašas nepakeitė reikšmės, o surikiuotas_sąrašas reikšmė yra surikiuota.
print(surikiuotas_sąrašas, sąrašas)

# pažiūrėkim, ką padarys funkcija sort()
sąrašas.sort()
# rezultate matysi du surikiuotus identiškus sąrašus.
print(surikiuotas_sąrašas, sąrašas)

# kaip surikiuoti mažėjančia tvarka? Tiesiog pridėkime prie funkcijos reverse=True
atbulas_sąrašas = sorted(surikiuotas_sąrašas, reverse=True)
print(atbulas_sąrašas, surikiuotas_sąrašas, sąrašas)

Rezultatus turėtum matyti tokius:

[0, 1, 3, 5, 23] [3, 1, 5, 23, 0]
[0, 1, 3, 5, 23] [0, 1, 3, 5, 23]
[23, 5, 3, 1, 0] [0, 1, 3, 5, 23] [0, 1, 3, 5, 23]

Akylus skaitytojas pamatys, kad pavyzdyje parodžiau papildomą sorted funkcionalumą atbuliniam sąrašo rikiavimui: sorted(sąrašas, reverse=True). reverse anglų kalboje reiškia atbulinis, todėl tai pasako funkcijai, kad mums reikia grąžint sąrašą atbuline tvarka.

Dar vienas labai svarbus skirtumas tarp sąrašas.sort() ir sorted() - ‘’sorted’’ naudojamas visiems iteruojamiems objektams. Pavyzdžiui anksčiau skyriuje minėtiems objektams.