Python တွင် ကြီးကြီးကြီးငယ်ငယ် သို့မဟုတ် ကြီးစဉ်ငယ်လိုက် စာရင်းတစ်ခုကို စီရန် နည်းလမ်းနှစ်ခုရှိသည်။
sort()
sorted()
စာကြောင်းတစ်ကြောင်း သို့မဟုတ် tuple ကိုခွဲထုတ်လိုပါက sorted() ကိုသုံးပါ။
အောက်ပါအချက်အလက်များကို ဤနေရာတွင် ဖော်ပြပေးထားပါသည်။
- မူရင်းစာရင်းကို အမျိုးအစားခွဲသည့်နည်းလမ်း
sort()
- အမျိုးအစားခွဲထားသောစာရင်းအသစ်တစ်ခု ဖန်တီးပါ၊ ပါ၀င်သည့်လုပ်ဆောင်ချက်- .
sorted()
- ကြိုးများနှင့် tuple အမျိုးအစားခွဲနည်း
မူရင်းစာရင်းကို စီခြင်း၊ အမျိုးအစားစာရင်း၏နည်းလမ်း- sort()
sort() သည် စာရင်းအမျိုးအစားနည်းလမ်းတစ်ခုဖြစ်သည်။
မူလစာရင်းကိုယ်တိုင် ပြန်လည်ရေးသားသည့် ဖျက်စီးမှုဖြစ်စဉ်တစ်ခု။
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
sort() သည် None ကို ပြန်မပေးကြောင်း သတိပြုပါ။
print(org_list.sort())
# None
ပုံသေသည် ကြီးစဉ်ငယ်လိုက်ဖြစ်သည်။ ကြီးစဉ်ငယ်လိုက် စီလိုပါက၊ အငြင်းအခုံကို ပြောင်းပြန်မှ အမှန်ဟု သတ်မှတ်ပါ။
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
အမျိုးအစားခွဲထားသောစာရင်းအသစ်တစ်ခု ဖန်တီးပါ၊ ပါ၀င်သည့်လုပ်ဆောင်ချက်- အမျိုးအစားခွဲထားသည်()
sorted() သည် built-in function တစ်ခုဖြစ်သည်။
စီစဥ်ထားရမည့်စာရင်းကို အငြင်းအခုံတစ်ခုအဖြစ် သတ်မှတ်သောအခါ စီထားသည့်စာရင်းကို ပြန်ပေးသည်။ ဤသည်မှာ မူလစာရင်းကို မပြောင်းလဲဘဲ အဖျက်သဘောဆောင်သော လုပ်ငန်းစဉ်တစ်ခုဖြစ်သည်။
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
sort() ကဲ့သို့ပင် ပုံသေသည် ကြီးစဉ်ငယ်လိုက်ဖြစ်သည်။ ကြီးစဉ်ငယ်လိုက် စီလိုပါက၊ အငြင်းအခုံကို ပြောင်းပြန်မှ အမှန်ဟု သတ်မှတ်ပါ။
new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]
ကြိုးများနှင့် tuple အမျိုးအစားခွဲနည်း
စာကြောင်းများနှင့် tuple များသည် မပြောင်းလဲနိုင်သောကြောင့် မူရင်းအရာဝတ္ထုကို ပြန်လည်ရေးရန် sort() နည်းလမ်း မရှိပါ။
အခြားတစ်ဖက်တွင်၊ အရာဝတ္ထုအသစ်တစ်ခုအဖြစ် စီထားသောစာရင်းကို ထုတ်ပေးသည့် sorted() function ၏ argument သည် string သို့မဟုတ် tuple နှင့် list တစ်ခု ဖြစ်နိုင်သည်။ သို့သော်၊ စီစဥ်ထား() သည် စာရင်းတစ်ခုကို ပြန်ပေးသောကြောင့်၊ ၎င်းကို စာကြောင်း သို့မဟုတ် tuple အဖြစ်သို့ ပြောင်းလဲရန် လိုအပ်သည်။
တန်းစီခြင်း
စီစဥ်ထားသည့်စာကြောင်းတစ်ခုစီ၏ အက္ခရာတစ်ခုစီကို ဒြပ်စင်တစ်ခုအဖြစ် သိမ်းဆည်းထားသည့် စည်းမျဥ်းခွဲခြင်း() လုပ်ဆောင်ချက်၏ အကြောင်းပြချက်အဖြစ် string တစ်ခုအား သတ်မှတ်သည့်အခါ စာရင်းတစ်ခုကို ပြန်ပေးသည်။
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
စာကြောင်းများစာရင်းကို စာကြောင်းတစ်ခုတည်းသို့ ပေါင်းစည်းရန် Join() နည်းလမ်းကို အသုံးပြုပါ။
new_str = ''.join(new_str_list)
print(new_str)
# abcde
ကြီးစဉ်ငယ်လိုက် စီလိုပါက၊ အငြင်းအခုံကို ပြောင်းပြန်မှ အမှန်ဟု သတ်မှတ်ပါ။
new_str = ''.join(sorted(org_str))
print(new_str)
# abcde
new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba
စာကြောင်းတစ်ခု၏ အရွယ်အစားကို စာလုံး၏ ယူနီကုဒ် ကုဒ်အမှတ် (ဇာတ်ကောင်ကုဒ်) က ဆုံးဖြတ်သည်။
Tuple များကို စီခြင်း
Tuples များသည် ကြိုးများနှင့် အတူတူပင်။ soted() function ၏ argument အဖြစ် tuple ကို သတ်မှတ်ခြင်းသည် စီထားသော element များစာရင်းကို ပြန်ပေးသည်။
org_tuple = (3, 1, 4, 5, 2)
new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]
စာရင်းတစ်ခုကို tuple အဖြစ်ပြောင်းရန် tuple() ကိုသုံးပါ။
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
ကြီးစဉ်ငယ်လိုက် စီလိုပါက၊ အငြင်းအခုံကို ပြောင်းပြန်မှ အမှန်ဟု သတ်မှတ်ပါ။
new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)
new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)