Python - စာရင်းနားလည်မှု
နားလည်မှုစာရင်း
စာရင်းနားလည်မှုသည် လက်ရှိစာရင်း၏တန်ဖိုးများအပေါ်အခြေခံ၍ စာရင်းအသစ်တစ်ခုဖန်တီးလိုသည့်အခါ ပိုမိုတိုတောင်းသော syntax ကို ပေးဆောင်ပါသည်။
ဥပမာ-
အသီးအနှံများစာရင်းကို အခြေခံ၍ အမည်တွင် အက္ခရာ "a" ပါသော အသီးအနှံများသာ ပါဝင်သည့် စာရင်းအသစ်ကို လိုချင်ပါသည်။
for
စာရင်းနားလည်မှုမရှိပါက အတွင်းတွင် အခြေအနေအရ စမ်းသပ်မှုတစ်ခုဖြင့် ထုတ်ပြန်ချက် တစ်ခုကို ရေးသားရပါမည် -
ဥပမာ
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
စာရင်းနားလည်မှုဖြင့် ကုဒ်တစ်ကြောင်းတည်းဖြင့် အားလုံးကို သင်လုပ်နိုင်သည်-
ဥပမာ
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
အထားအသို
newlist = [expression for item in iterable if condition == True]
ပြန်ပေးသည့်တန်ဖိုးသည် စာရင်းအသစ်ဖြစ်ပြီး၊ စာရင်းဟောင်းကို မပြောင်းလဲပါ။
အခြေအနေ
အခြေအနေသည် တန်ဖိုးရှိသော အရာများကိုသာ လက်ခံသည့် စစ်ထုတ် မှု တစ်ခုနှင့်တူသည်
True
။
ဥပမာ
"ပန်းသီး" မဟုတ်သော အရာများကိုသာ လက်ခံပါ-
newlist = [x for x in fruits if x != "apple"]
အခြေအနေ
if x != "apple"True
စာရင်းအသစ်တွင် "ပန်းသီး" မှလွဲ၍ အသီးအနှံအားလုံးပါဝင်ပြီး "ပန်းသီး" မှလွဲ၍ အခြားဒြပ်စင်အားလုံးအတွက်
ပြန်သွားပါမည် ။
အခြေအနေသည် စိတ်ကြိုက်ရွေးချယ်နိုင်ပြီး ချန်လှပ်ထားနိုင်သည် -
ဥပမာ
if
ထုတ်ပြန်ချက် မရှိဘဲ -
newlist = [x for x in fruits]
အဆင်မပြေ
iterable သည် စာရင်းတစ်ခု၊ tuple၊ set စသည်တို့ကဲ့သို့ တူညီသော အရာဝတ္ထုတစ်ခုခု ဖြစ်နိုင်သည် ။
ဥပမာ
range()
ထပ်ကာထပ်ကာ ဖန်တီးရန် လုပ်ဆောင်ချက်ကို သင်အသုံးပြုနိုင်သည် -
newlist = [x for x in range(10)]
ဥပမာတူသော်လည်း အခြေအနေတစ်ခုနှင့်
ဥပမာ
5 ထက်နိမ့်သောနံပါတ်များကိုသာလက်ခံပါ
newlist = [x for x in range(10) if x < 5]
စကားရပ်
စကားရပ် သည် အထပ်ထပ်ရှိ လက်ရှိ အရာဖြစ်သည်၊ သို့သော် ၎င်းသည် စာရင်းအသစ်တွင် စာရင်းအရာတစ်ခုကဲ့သို့ မပြီးဆုံးမီ သင်ကိုင်တွယ်နိုင်သည့် ရလဒ်လည်းဖြစ်သည်။
ဥပမာ
စာရင်းအသစ်တွင် တန်ဖိုးများကို စာလုံးအကြီးအဖြစ် သတ်မှတ်ပါ-
newlist = [x.upper()
for x in fruits]
ရလဒ်ကို သင်နှစ်သက်သလို သတ်မှတ်နိုင်သည်-
ဥပမာ
စာရင်းအသစ်တွင် တန်ဖိုးအားလုံးကို 'မင်္ဂလာပါ' ဟု သတ်မှတ်ပါ-
newlist = ['hello' for x in fruits]
စကားရပ် တွင် စစ်ထုတ်ခြင်းကဲ့သို့မဟုတ်ဘဲ အခြေအနေများပါ ပါဝင်နိုင်သော်လည်း ရလဒ်ကို ကိုင်တွယ်ရန် နည်းလမ်းတစ်ခုအနေဖြင့်လည်း ပါဝင်နိုင်သည်-
ဥပမာ
"ငှက်ပျောသီး" အစား "လိမ္မော်ရောင်" ကိုပြန်ပေးပါ။
newlist = [x if x != "banana" else "orange"
for x in fruits]
အထက်ဖော်ပြပါ ဥပမာတွင် စကားရပ် သည် ၊
"ငှက်ပျောသီးမဟုတ်ရင် ငှက်ပျောသီးဖြစ်ရင် လိမ္မော်ပြန်ပေး"