စာရင်းတစ်ခုရှိ ထပ်တူများကို အမည်ပြောင်းခြင်းမှာ မိတ္တူပွားများကို ခွဲခြားသတ်မှတ်ပြီး ၎င်းတို့ကို မည်သို့အမည်ပြောင်းရမည်ကို ဆုံးဖြတ်ရန် လိုအပ်သောကြောင့် ဖြေရှင်းရန် ခက်ခဲသော ပြဿနာတစ်ခုဖြစ်သည်။ စာရင်းတွင် ဒြပ်စင်များစွာပါရှိလျှင် သို့မဟုတ် ဒြပ်စင်များသည် ရှုပ်ထွေးသည့်အရာများဖြစ်လျှင် ၎င်းသည် အထူးသဖြင့် စိန်ခေါ်မှုဖြစ်နိုင်သည်။ ထို့အပြင်၊ ထပ်တူများကို အမည်ပြောင်းခြင်းတွင် ၎င်းတို့ကို ကောင်းမွန်စွာ ဆက်လက်လုပ်ဆောင်နိုင်စေရန်အတွက် အစိတ်အပိုင်းများ၏ မူရင်းအမည်များကို အားကိုးထားသည့် သင့်ကုဒ်၏ အခြားအစိတ်အပိုင်းများကို ပြင်ဆင်ရန် လိုအပ်ပါသည်။
def rename_duplicates(lst): seen = set() new_lst = [] for item in lst: if item not in seen: seen.add(item) new_lst.append(item) else: new_item = item + '_1' # append a suffix to make it unique while new_item in seen: # increment the suffix until it's unique suffix = int(new_item.split('_')[-1]) + 1 # get the last number and add one to it new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix) seen.add(new_item) # add the newly created item to the set of seen items new_lst.append(new_item) # append the newly created item to the list return new
_lst
# ဤကုဒ်သည် စာရင်းတစ်ခုတွင် အကြောင်းပြချက်တစ်ခုအဖြစ် ယူဆောင်သည့် rename_duplicates ဟုခေါ်သော လုပ်ဆောင်ချက်ကို သတ်မှတ်သည်။
def rename_duplicates(lst):
# ၎င်းသည်မြင်ပြီးသောအချည်းနှီးသောအစုတစ်ခုနှင့် new_lst ဟုခေါ်သောအလွတ်စာရင်းတစ်ခုကိုဖန်တီးသည်။
မြင်သည် = set()
new_lst = []
# ထို့နောက် ၎င်းသည် စာရင်းရှိပစ္စည်းများကို ထပ်လောင်းပြီး ၎င်းတို့သည် မြင်တွေ့ရသည့်အရာများအစုအဝေးတွင် ရှိမရှိ စစ်ဆေးသည်။
lst ရှိ ပစ္စည်းအတွက်
အကယ်၍ မတွေ့ရသေးပါက၊ # မဟုတ်ပါက၊ ၎င်းကို မြင်ဖူးသည့်အရာများအစုတွင် ပေါင်းထည့်ကာ စာရင်းအသစ်တွင် ပေါင်းထည့်မည်ဖြစ်သည်။
Seed.add(ပစ္စည်း)
new_lst.append(item) # ဖြစ်ပါက၊ ၎င်းသည် ၎င်း၏အမည်သို့ suffix (ဥပမာ '_1') ကို ပေါင်းထည့်ခြင်းဖြင့် ၎င်းသည် ၎င်းသည် အသစ်ဖန်တီးထားသောအရာအား မြင်တွေ့ရသည့်အရာများအစုတွင် ရှိနှင့်ပြီးကြောင်း စစ်ဆေးပေးခြင်းဖြင့် ၎င်းသည် ၎င်းအရာ၏ထူးခြားသောဗားရှင်းကို ဖန်တီးသည်။
else- # သို့ဆိုလျှင်၊ ၎င်းသည် ၎င်းအရာ၏အမည်နာမ၏အသုံးမပြုသောဗားရှင်းကိုတွေ့ရှိပြီး ၎င်းသည် ၎င်း၏လုပ်ဆောင်မှုအပြီးတွင် ဤစာရင်းအသစ်ကိုမပြန်မီ ဤအသစ်ဖန်တီးထားသောအရာနှစ်ခုလုံးကိုတွေ့မြင်ရသည့်အရာများနှင့်စာရင်းအသစ်သို့ထပ်ထည့်သည်အထိနောက်ဆက်ကိုတိုးပေးသည်။
new_item = ပစ္စည်း + '_1'
new_item တွင်တွေ့ရစဉ်- # increment suffix ထူးခြားသည်အထိဖြစ်သည်။
suffix = int(new_item.split('_')[-1]) + 1 # နောက်ဆုံးနံပါတ်ရယူပြီး ၎င်းသို့ တစ်လုံးထည့်ပါ
new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), နောက်ဆက်တွဲ)
saw.add(အသစ်
Python တွင်စာရင်းများ
Python ရှိ စာရင်းများသည် အသုံးအများဆုံး ဒေတာဖွဲ့စည်းပုံများထဲမှ တစ်ခုဖြစ်သည်။ ၎င်းတို့ကို အခြားစာရင်းများအပါအဝင် မည်သည့်အမျိုးအစားမဆို ဖြစ်နိုင်သည့်အရာများ အစုအဝေးကို သိမ်းဆည်းရန် အသုံးပြုသည်။ စာရင်းများသည် ပြောင်းလဲနိုင်သည်၊ ဆိုလိုသည်မှာ ၎င်းတို့ကို ဖန်တီးပြီးပါက ပြောင်းလဲနိုင်သည်။ ၎င်းတို့သည် ညွှန်းကိန်းထုတ်ခြင်း၊ လှီးဖြတ်ခြင်းနှင့် ပေါင်းစပ်ခြင်းကဲ့သို့သော လုပ်ဆောင်ချက်များကိုလည်း ပံ့ပိုးပေးသည်။
Python တွင် စာရင်းတစ်ခုဖန်တီးရန်၊ သင်သည် စတုရန်းကွင်းစကွက်များကို အသုံးပြုပြီး အကြောင်းအရာတစ်ခုစီကို ကော်မာဖြင့် ပိုင်းခြားပါ။
my_list = [1၊ 2၊ 3]
၎င်းတို့၏ အညွှန်းကို အသုံးပြု၍ စာရင်းအတွင်းရှိ အစိတ်အပိုင်းတစ်ခုချင်းစီကို သင်ဝင်ရောက်ကြည့်ရှုနိုင်သည်-
my_list[0] # ပြန်လာသည် 1
my_list[1] # ပြန်လာသည် 2
my_list[2] # ပြန်လာသည် 3
စာရင်း၏အဆုံးမှဒြပ်စင်များကိုဝင်ရောက်ကြည့်ရှုရန် အနုတ်လက္ခဏာညွှန်းကိန်းများကိုလည်း သင်အသုံးပြုနိုင်ပါသည်-
my_list[-1] # သည် 3 (နောက်ဆုံးအစိတ်အပိုင်း) ကို ပြန်ပေးသည်
append() နည်းလမ်းကို အသုံးပြု၍ စာရင်းတစ်ခုသို့ ပစ္စည်းများထည့်နိုင်သည်။
my_list.append(4) # သည် စာရင်း၏အဆုံးတွင် 4 ကိုထည့်သည်။
remove() သို့မဟုတ် pop() နည်းလမ်းများကို အသုံးပြု၍ စာရင်းတစ်ခုမှ အရာများကို ဖယ်ရှားနိုင်သည်-
my_list.remove(3) # စာရင်းမှ 3 ကို ဖယ်ရှားသည်။
my_list.pop(2) # သည် စာရင်းမှ 2 (တတိယဒြပ်စင်) ကို ဖယ်ရှားပြီး ပြန်ပေးသည်။
Python ရှိ စာရင်းတွင် ထပ်နေသောများကို အမည်ပြောင်းပါ။
Python ရှိ စာရင်းထဲတွင် ထပ်နေသောများကို အမည်ပြောင်းခြင်းသည် စာရင်းများကို ကိုင်တွယ်ရာတွင် လုပ်ရိုးလုပ်စဉ်တစ်ခုဖြစ်သည်။ ၎င်းတွင် ထူးခြားသောတန်ဖိုးများဖြင့် စာရင်းတစ်ခုတွင် ထပ်နေသောဒြပ်စင်များကို အစားထိုးခြင်း ပါဝင်သည်။ ၎င်းကို စာရင်းတစ်ခုမှ ထပ်နေသောဒြပ်စင်များအားလုံးကို ဖယ်ရှားပြီး ထူးခြားသောဒြပ်စင်များသာရှိသော စာရင်းအသစ်ကို ပြန်ပေးသည့် set() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ၎င်းကို လုပ်ဆောင်နိုင်သည်။ တန်ဖိုးဟောင်းများကို တန်ဖိုးအသစ်များသို့ မြေပုံညွှန်းပေးခြင်းဖြင့် ထပ်နေသည့်အရာများကို အမည်ပြောင်းရန်အတွက် set() လုပ်ဆောင်ချက်ကိုလည်း အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်၊ သင့်တွင် နံပါတ်များစာရင်းရှိပြီး ထပ်နေသည့်အားလုံးကို ၎င်းတို့၏ သက်ဆိုင်ရာစတုရန်းများဖြင့် အစားထိုးလိုပါက အောက်ပါကုဒ်ကို အသုံးပြုနိုင်ပါသည်။
# အလွတ်အဘိဓာန်ဖန်တီးပါ။
မြေပုံဆွဲခြင်း = {}
# မူရင်းစာရင်းကို ထပ်လောင်းပါ။
my_list ရှိ ပစ္စည်းအတွက်-
# အဘိဓာန်တွင် အကြောင်းအရာ ရှိ၊ မရှိ စစ်ဆေးပါ။
မြေပုံတွင် အကြောင်းအရာမပါပါက၊
# မဟုတ်ပါက၊ ၎င်းကိုအဘိဓာန်တွင်ထည့်ကာ ၎င်း၏စတုရန်းကို တန်ဖိုးအဖြစ် သတ်မှတ်ပါ။
mapping[item] = item * item
# ဗလာရလဒ်စာရင်းဖန်တီးပါ။
ရလဒ်_စာရင်း = []
# မူရင်းစာရင်းကို တစ်ဖန်ပြန်ပြီး my_list တွင် i အတွက် အဘိဓာန်မှ စတုရန်းဖြင့် အစိတ်အပိုင်းတစ်ခုစီကို အစားထိုးပါ- result_list.append(mapping[i])
# ရလဒ် print(ရလဒ်_စာရင်း)