Bu maqolani albatta saqlab qo'ying (ayniqsa Python ni o'zingiz o'rganayotgan bo'lsangiz)

Bu maqolani albatta saqlab qo'ying (ayniqsa Python ni o'zingiz o'rganayotgan bo'lsangiz)

Original maqola - WY Fok

Agar zerikarli karantin hayoti tufayli siz Pythonga sho'ng'ishga qaror qilsangiz, tabriklayman. Siz eng tez rivojlanayotgan dasturlash tiliga duch keldingiz. Ishonchim komilki, Python tilining soddaligi, o'rganish qulayligi va boshqalar kabi ba'zi afzalliklarini bilasiz. Umid qilamanki, siz Python tilini yanada samarali o'rganishingiz va ushbu jarayondan bahramand bo'lishingiz mumkin va buning uchun oddiy, ammo foydali "fokuslar" va maslahatlar ro'yxatini tayyorladim.

Tushuntirish: hozirda python 3.8 dan foydalanaman. Agar siz mening misollarni ishga tushirishda biron-bir muammoga duch kelsangiz, iltimos, bu Sizning Python versiyasi bilan bog'liq emasligini tekshiring.

Qiymatlarni taqqoslash

Siz ikki ob'ekt qiymatini solishtirishingiz mumkin. Natijada True yoki False bo'ladi. Siz if-else operatorida, shart sifatida to'g'ridan-to'g'ri taqqoslashni ishlatishingiz mumkin.

Shartli qaytarish operatori

Ushbu kodning o'rniga,

siz return operatoridan keyin bevosita shart ishlatishingiz mumkin:

Bir qatorda, ro'yxat/kortej orqali bir nechta o'zgaruvchining belgilanishi

Buning o'rniga,


siz xuddi shu ishni bir qatorda amalga oshiringiz mumkin:

Ro'yxatlarni generatsiya orqali yaratish

Quqidagi kodning o'rniga,

generatsiya orqali, bunday qilsangiz bo'ladi:

Ikki ro'yxat elementlarni solishtirish uchun zip ishlating

Bu kodning o'rniga,

quyidagi kod ancha qulayroq:

Lambda-dan ikkinchi element uchun ichki ro'yxatni tartiblash uchun foydalaning


filter, map

Ushbu kod o'rniga,

pastdagi kodni ishlatsangiz bo'ladi:

Aytgancha, quyida undan ham oson variantini topasiz:


Ro'yxatdagi barcha elementlar noyobligini tekshirish

Ro'yxatdagi takrorlanadigan elementlarni olib tashlash uchun set funksiyasidan foydalaning va keyin ro'yxatning uzunligi va natijada paydo bo'lgan to'plamning tengligini tekshiring.

Satrlarni formatlash

Satrlarni formatlashning afzalliklaridan biri -— asl qiymatning to'g'riligiga ta'sir qilmasdan yaxlitlash bilan raqamli qiymatni chiqarish qobiliyatidir.

#До Python3.6 — #Python3.6 gacha.
#С Python3.6+ — #Python3.6+ dan so'ng.

Formatlash bo'yicha to'liq informatsiya — PyFormat.

enumerate

Bu kodning o'rniga,

enumerate dan foydalaning:

Ro'yxatning ma'lum bir qismini olish


Kombinatsiyalar va qayta joylashtirish

itertools imkoniyatlaridan foydalaning.

Bir vaqtning o'zida bir nechta o'zgaruvchini yangilash

Ushbu kod o'rniga,

har ikkala o'zgaruvchini bir qatorda hisoblashingiz mumkin. Bunday holda, vaqtinchalik o'zgaruvchini yaratish shart emas:

( PS: Nima o'zi bu? Fibonachchi ketma-ketligi! )

Qo'shimcha ma'lumot: evaluation-order

Ro'yxatdan satr olish

Siz ro'yxatdagi barcha string formatida bo'lgan elementlarni join funksiyasi yordamida birlashtirishingiz mumkin. Faqat elementlar orasidagi ajratgichni qo'shish kerak.

map funksiyasi orqali sonlarni satrlarga aylantirish mumkin va join funksiyasi bilan birga, siz yangi string formatidagi o'zgaruvchilarni olasiz.

Qo'shimcha ma'lumot: str.join, map


Underscore (pastki chiziq)

Odatda, agar siz kod blokini takrorlashni istasangiz, quyida ko'rsatilganidek, for loop ishlatiladi:

Tepada ko'rib turganingizdek, for uchun yaratilgan i o'zgaruvchisi ishlatimayapti. Bunday holatda, i o'rniga _ (pastki chiziq) dan foydalanishingiz mumkin. (_ - faqat o'zgaruvchining nomi va Pythonda e'tiborsiz o'zgaruvchi sifatida qaraladi. Bu for o'zgaruvchisidan aslida foydalanmasligimizni anglatadi.)


Dict.keys, Dict.values, Dict.items

Lug'at uchun kalitlarni va qiymatlarni mos ravishda olish uchun keys va values funksiyalaridan foydalanishingiz mumkin. Items funksiyasi yordamida siz kalitlarni va qiymatlarni bir vaqtning o'zida olishingiz mumkin. Kalitlar va qiymatlar o'rtasida almashinish kerak bo'lsa, bu foydali ancha bo'ladi.


Muhim: almashtirishda ikki nusxadagi qiymatlardan ehtiyot bo'ling, aks holda siz bo'sh bo'lgan elementlarni olasiz.

(Qo'shimcha: zip bilan siz ikkita ro'yxatning lug'atini yaratishingiz mumkin)

Qo'shimcha ma'lumot: Mapping types - dict.

Ikki to'plamni solishtirish

# Is a a subset of b? — #a b ning ichki to'plamimi?

# Is a a superset of b — #b a ning ichki to'plamimi?

#Union of a and b — #a va b ning birlashmasi

#Intersection of a and b — #a va b ning kesishmasi

#Difference — # Farq

#Return elements in a but not in b — #a da bo'lgan lekin b da bo'magan elementlarni qaytarish

#Return elements in b but not in a — #b da bo'lgan lekin a da bo'magan elementlarni qaytarish

Qo'shimcha ma'lumot: set

collections.Counter

Ro'yxatdagi barcha elementlarning sonini hisoblash zarur bo'lsa, bu juda qulay. Ro'yxatdagi ushbu elementlarning tegishli soni bilan, ro'yxatning barcha elementlarini aks ettirishda Counter sinfining ob'ekti yordam beradi.


#Convert back to a dictionary — #Qaytib lu'gatga aylantirish

Qo'shimcha ma'lumot: collections.Counter

Xulosa

Bu 'fokuslar' juda oddiy bo'lsa-da, ular vaqtni tejashga va kodingizni soddalashtirishga yordam beradi. Umid qilamanki, maqola sizga oddiy Python xususiyatlaridan qanday foydalanishni tushunishga yordam berdi. Ta'lim va kodlashda omad! Ko'rishguncha.

Tarjima: Yerzakov Jamshid


Report Page