Python lists (arrays) ၏ သီးခြားဒြပ်စင်များကို ထုတ်ယူ၊ အစားထိုးခြင်းနှင့် ပြောင်းလဲခြင်း

စီးပွားရေးလုပ်ငန်း

အချို့သော အခြေအနေများကို ကျေနပ်စေသော၊ သို့မဟုတ် အစားထိုးခြင်း သို့မဟုတ် ပြောင်းလဲခြင်းများ လုပ်ဆောင်ခြင်းဖြင့် စာရင်းနားလည်မှုကို အသုံးပြု၍ လက်ရှိစာရင်း (အခင်းအကျင်း) ၏ အစိတ်အပိုင်းများကိုသာ ထုတ်ယူခြင်း သို့မဟုတ် ဖျက်ခြင်းဖြင့် Python တွင် စာရင်းအသစ်တစ်ခု ဖန်တီးပါ။

နမူနာကုဒ်နှင့်အတူ အောက်ပါတို့ကို ဤနေရာတွင် ရှင်းပြထားသည်။

  • စာရင်းနားလည်မှုမှတ်စု၏ အခြေခံပုံစံ
  • လုပ်ငန်းစဉ်ကို စာရင်း၏အစိတ်အပိုင်းအားလုံးတွင် အသုံးပြုပါ။
  • သတ်မှတ်ချက်များနှင့် ကိုက်ညီသော စာရင်းမှ အစိတ်အပိုင်းများကို ထုတ်ယူပြီး ဖျက်ပါ။
  • စာရင်း၏အခြေအနေများကို ကျေနပ်စေသော အစိတ်အပိုင်းများကို အစားထိုး သို့မဟုတ် ပြောင်းလဲပါ။

စာကြောင်းများစာရင်း၏ သီးခြားဥပမာများအတွက် အောက်ပါဆောင်းပါးကို ကြည့်ပါ။

စံသတ်မှတ်ချက်များနှင့် မကိုက်ညီသော အစိတ်အပိုင်းများကို ကျပန်းထုတ်ယူနိုင်သည်။

စာရင်းများသည် မတူညီသောဒေတာအမျိုးအစားများကို သိမ်းဆည်းနိုင်ပြီး array များနှင့် တင်းကြပ်စွာကွဲပြားသည်ကို သတိပြုပါ။ မန်မိုရီအရွယ်အစားနှင့် မမ်မိုရီလိပ်စာများ သို့မဟုတ် ကြီးမားသောဒေတာ၏ ကိန်းဂဏာန်းလုပ်ဆောင်မှု လိုအပ်သည့် လုပ်ငန်းစဉ်များတွင် ခင်းကျင်းမှုများကို ကိုင်တွယ်လိုပါက၊ ခင်းကျင်းမှု (စံပြစာကြည့်တိုက်) သို့မဟုတ် NumPy ကို အသုံးပြုပါ။

အောက်ပါစာရင်းသည် ဥပမာတစ်ခုဖြစ်သည်။

l = list(range(-5, 6))
print(l)
# [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]

စာရင်းနားလည်မှုမှတ်စု၏ အခြေခံပုံစံ

စာရင်းတစ်ခုမှ စာရင်းအသစ်တစ်ခုကို ထုတ်ပေးသောအခါ၊ စာရင်းနားလည်နိုင်မှုသည် ကွင်းပတ်အတွက်ထက် စာရေးရန် ပိုမိုလွယ်ကူပါသည်။

[expression for any variable name in iterable object if conditional expression]

စကားရပ်တစ်ခုအား ထပ်ကာထပ်ကာပြုလုပ်နိုင်သော အရာဝတ္တု (ဥပမာ သို့မဟုတ် tuple ကဲ့သို့) ၏အခြေအနေအလိုက်ဖော်ပြချက်အား ကျေနပ်စေသည့်ဒြပ်စင်တစ်ခုသို့ သက်ရောက်ပြီး စာရင်းအသစ်တစ်ခု၏ဒြပ်စင်တစ်ခုဖြစ်လာသည်။ ဤအခြေအနေတွင် အဆိုပါ စကားရပ်ကို ဒြပ်စင်အားလုံးသို့ သက်ရောက်စေသည့် “ if conditional expression” ကို ချန်လှပ်နိုင်သည်။

nested list comprehension အမှတ်အသား အပါအဝင် နောက်ထပ်အသေးစိတ်အချက်အလက်များအတွက် အောက်ပါဆောင်းပါးကို ကြည့်ပါ။

လုပ်ငန်းစဉ်ကို စာရင်း၏အစိတ်အပိုင်းအားလုံးတွင် အသုံးပြုပါ။

ဥပမာအားဖြင့်၊ သင်သည် စာရင်းတစ်ခု၏ အစိတ်အပိုင်းအားလုံးတွင် လုပ်ငန်းစဉ်အချို့ကို အသုံးချလိုပါက၊ အထက်ဖော်ပြပါ စာရင်းနားလည်မှုအသုံးအနှုန်းတွင် အလိုရှိသော လုပ်ဆောင်မှုကို ဖော်ပြပါ။

l_square = [i**2 for i in l]
print(l_square)
# [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

l_str = [str(i) for i in l]
print(l_str)
# ['-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5']

နံပါတ်များစာရင်းများနှင့် စာကြောင်းများစာရင်းများကြားသို့ ပြောင်းရန် ၎င်းကို အသုံးပြုနိုင်သည်။

သတ်မှတ်ချက်များနှင့် ကိုက်ညီသော စာရင်းမှ အစိတ်အပိုင်းများကို ထုတ်ယူပြီး ဖျက်ပါ။

အကယ်၍ ဒြပ်စင်အား အခြေအနေဆိုင်ရာ စကားရပ်တစ်ခုဖြင့်သာ ရွေးချယ်ရမည်ဆိုပါက၊ ၎င်းအား ဖော်ပြချက်တစ်ခုဖြင့် လုပ်ဆောင်မည်မဟုတ်သောကြောင့် ၎င်းသည် အောက်ပါပုံစံကို ယူသည်။

[variable name for variable name in original list if conditional expression]

အခြေအနေအား ကျေနပ်စေသော ဒြပ်စင်များ ( conditional expression သည် အမှန်ဖြစ်သည် ) ကို ထုတ်ယူသည့် စာရင်းအသစ်ကို ထုတ်ပေးပါသည်။

l_even = [i for i in l if i % 2 == 0]
print(l_even)
# [-4, -2, 0, 2, 4]

l_minus = [i for i in l if i < 0]
print(l_minus)
# [-5, -4, -3, -2, -1]

အကယ်၍ “ အခြေအနေဆိုင်ရာဖော်ပြချက်” ကို “ အခြေအနေဆိုင်ရာဖော်ပြချက်မဟုတ်ပါက” ဟုသတ်မှတ်ပါက၊ ၎င်းသည် ငြင်းဆိုချက်တစ်ခုဖြစ်လာပြီး အခြေအနေမကျေနပ်သည့်ဒြပ်စင်များ (အခြေအနေဆိုင်ရာဖော်ပြချက်သည် မှားယွင်းသောဒြပ်စင်များ) ကို ရွေးချယ်ပြီး ထုတ်ယူနိုင်သည်။ တစ်နည်းဆိုရသော်၊ အခြေအနေအား ကျေနပ်စေမည့် အစိတ်အပိုင်းများကို ဖယ်ရှားသည့် စာရင်းအသစ်ကို ထုတ်ပေးပါသည်။

l_odd = [i for i in l if not i % 2 == 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if not i < 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

ဟုတ်ပါတယ်၊ အသုံးမပြုဘဲ ညီမျှသော အခြေအနေဆိုင်ရာ စကားရပ်ကို သတ်မှတ်ခြင်းဖြင့် တူညီသောရလဒ်ကို ရရှိပါသည်။

l_odd = [i for i in l if i % 2 != 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if i >= 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

conditional expression အပိုင်းသည် အခြေအနေများစွာ ဖြစ်နိုင်သည်။ Negative nots တွေကိုလည်း သုံးနိုင်ပါတယ်။

l_minus_or_even = [i for i in l if (i < 0) or (i % 2 == 0)]
print(l_minus_or_even)
# [-5, -4, -3, -2, -1, 0, 2, 4]

l_minus_and_odd = [i for i in l if (i < 0) and not (i % 2 == 0)]
print(l_minus_and_odd)
# [-5, -3, -1]

စာရင်း၏အခြေအနေများကို ကျေနပ်စေသော အစိတ်အပိုင်းများကို အစားထိုး သို့မဟုတ် ပြောင်းလဲပါ။

အထက်ဖော်ပြပါ ဒြပ်စင်ထုတ်ယူခြင်း၏နမူနာတွင်၊ အခြေအနေများကို မကျေနပ်သောဒြပ်စင်များကို ဖယ်ရှားခဲ့သည်။

အခြေအနေများကို ကျေနပ်စေသော ဒြပ်စင်များပေါ်တွင်သာ အစားထိုးခြင်း၊ စကားဝိုင်းများ စသည်တို့ကို လုပ်ဆောင်လိုပါက၊ စာရင်းနားလည်မှုမှတ်စု၏ စကားရပ်တွင် ternary operator ကို အသုံးပြုပါ။

Python တွင် ternary operator ကို အောက်ပါအတိုင်း ရေးသားနိုင်ပါသည်။

True Value if Conditional Expression else False Value
a = 80
x = 100 if a > 50 else 0
print(x)
# 100

b = 30
y = 100 if b > 50 else 0
print(y)
# 0

၎င်းသည် အနည်းငယ်ရှုပ်ထွေးသော်လည်း list comprehension notation နှင့် ternary operator များ၏ ပေါင်းစပ်မှုသည် အောက်ပါအတိုင်းဖြစ်သည်။

[True Value if Conditional Expression else False Value for any variable name in original list]

ကွင်းအတွင်းထည့်သွင်းထားသောအပိုင်းသည် ternary အော်ပရေတာဖြစ်သည် (ကွင်းစဥ်အမှန်တကယ်ကုဒ်တွင်မလိုအပ်ပါ)။

[(True Value if Conditional Expression else False Value) for any variable name in original list]

ကိန်းရှင်အမည်ကို အစစ်အမှန် သို့မဟုတ် အမှားတန်ဖိုးများအဖြစ် ရေးသားပါက၊ မူရင်းဒြပ်စင်၏တန်ဖိုးကို ယခင်အတိုင်း အသုံးပြုသည်။ အသုံးအနှုန်းတစ်ခုကို ရေးထားလျှင် ထိုစကားရပ်၏ လုပ်ဆောင်ခြင်းကို သက်ရောက်သည်။

l_replace = [100 if i > 0 else i for i in l]
print(l_replace)
# [-5, -4, -3, -2, -1, 0, 100, 100, 100, 100, 100]

l_replace2 = [100 if i > 0 else 0 for i in l]
print(l_replace2)
# [0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100]

l_convert = [i * 10 if i % 2 == 0 else i for i in l]
print(l_convert)
# [-5, -40, -3, -20, -1, 0, 1, 20, 3, 40, 5]

l_convert2 = [i * 10 if i % 2 == 0 else i / 10 for i in l]
print(l_convert2)
# [-0.5, -40, -0.3, -20, -0.1, 0, 0.1, 20, 0.3, 40, 0.5]