การเปลี่ยนชื่อรายการที่ซ้ำกันในรายการอาจเป็นปัญหาที่แก้ไขได้ยาก เนื่องจากคุณจะต้องระบุรายการที่ซ้ำกัน แล้วตัดสินใจว่าจะเปลี่ยนชื่ออย่างไร สิ่งนี้อาจท้าทายเป็นพิเศษหากรายการมีองค์ประกอบจำนวนมากหรือหากองค์ประกอบเป็นวัตถุที่ซับซ้อน นอกจากนี้ การเปลี่ยนชื่อซ้ำอาจทำให้คุณต้องแก้ไขส่วนอื่นๆ ของโค้ดที่ใช้ชื่อเดิมขององค์ประกอบเพื่อให้ทำงานได้อย่างถูกต้องต่อไป
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):
# จากนั้นจะสร้างชุดว่างที่เรียกว่า sawed และรายการว่างที่เรียกว่า new_lst
เห็น = set()
ใหม่_lst = []
# จากนั้นวนซ้ำผ่านรายการในรายการและตรวจสอบว่าพวกเขาอยู่ในชุดของรายการที่เห็นหรือไม่
สำหรับรายการใน lst:
ถ้าไม่เห็นรายการ: # ถ้าไม่เห็น จะเพิ่มเข้าไปในชุดของรายการที่เห็นและต่อท้ายรายการใหม่
saw.add(รายการ)
new_lst.append(item) # ถ้ามี จะเป็นการสร้างเวอร์ชันเฉพาะของไอเท็มนั้นโดยเพิ่มคำต่อท้าย (เช่น '_1') ต่อท้ายชื่อ และตรวจสอบว่าไอเท็มที่สร้างขึ้นใหม่นี้อยู่ในชุดของไอเท็มที่เห็นหรือไม่
อื่น: # ถ้าใช่ มันจะเพิ่มส่วนต่อท้ายจนกว่าจะพบเวอร์ชันที่ไม่ได้ใช้ของชื่อรายการนั้น และเพิ่มรายการที่สร้างขึ้นใหม่นี้ให้กับทั้งชุดของรายการที่เห็นและในรายการใหม่ก่อนที่จะส่งคืนรายการใหม่นี้เมื่อสิ้นสุดการดำเนินการ
new_item = รายการ + '_1'
ในขณะที่เห็น new_item: # เพิ่มส่วนต่อท้ายจนกว่าจะไม่ซ้ำกัน
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 (องค์ประกอบสุดท้าย)
คุณสามารถเพิ่มรายการในรายการโดยใช้วิธีการผนวก () :
my_list.append(4) # เพิ่ม 4 ที่ส่วนท้ายของรายการ
คุณสามารถลบรายการออกจากรายการโดยใช้เมธอด remove() หรือ pop() อย่างใดอย่างหนึ่ง:
my_list.remove(3) # ลบ 3 ออกจากรายการ
my_list.pop(2) # ลบและส่งคืน 2 (องค์ประกอบที่สาม) จากรายการ
เปลี่ยนชื่อซ้ำในรายการใน Python
การเปลี่ยนชื่อซ้ำในรายการใน Python เป็นงานทั่วไปเมื่อจัดการกับรายการ มันเกี่ยวข้องกับการแทนที่องค์ประกอบที่ซ้ำกันในรายการด้วยค่าที่ไม่ซ้ำใคร ซึ่งสามารถทำได้โดยใช้ฟังก์ชัน set() ซึ่งจะลบองค์ประกอบที่ซ้ำกันทั้งหมดออกจากรายการ และส่งกลับรายการใหม่ที่มีเฉพาะองค์ประกอบที่ไม่ซ้ำกัน นอกจากนี้ยังสามารถใช้ฟังก์ชัน set() เพื่อเปลี่ยนชื่อรายการที่ซ้ำกันได้ด้วยการแมปค่าเก่ากับค่าใหม่ ตัวอย่างเช่น หากคุณมีรายการตัวเลขและต้องการแทนที่รายการที่ซ้ำกันทั้งหมดด้วยช่องสี่เหลี่ยมตามลำดับ คุณสามารถใช้รหัสต่อไปนี้:
# สร้างพจนานุกรมที่ว่างเปล่า
การทำแผนที่ = {}
#วนซ้ำรายการเดิม
สำหรับรายการใน my_list:
# ตรวจสอบว่ามีรายการอยู่ในพจนานุกรมหรือไม่
หากรายการไม่อยู่ในการจับคู่:
# ถ้าไม่ใช่ ให้เพิ่มลงในพจนานุกรมและกำหนดค่าสี่เหลี่ยมจัตุรัสให้เป็นค่า
การทำแผนที่ [รายการ] = รายการ * รายการ
# สร้างรายการผลลัพธ์ที่ว่างเปล่า
result_list = []
# วนซ้ำรายการเดิมอีกครั้งและแทนที่แต่ละองค์ประกอบด้วยกำลังสองจากพจนานุกรมสำหรับ i ใน my_list: result_list.append(mapping[i])
# พิมพ์ผลการพิมพ์ (result_list)