Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - รวมสองลิสต์โดยรักษาค่าซ้ำในลิสต์แรก


ในการวิเคราะห์ข้อมูลด้วย Python เราอาจพบสถานการณ์ที่ต้องรวมสองลิสต์ แต่อาจเป็นความท้าทายในการจัดการค่าซ้ำในลิสต์เหล่านั้น ในบทความนี้เราจะดูวิธีรวมสองลิสต์โดยเก็บทุกองค์ประกอบจากลิสต์แรก และเฉพาะองค์ประกอบที่ไม่ซ้ำจากลิสต์ที่สอง

การใช้ extend

ในวิธีนี้เราเอาลิสต์แรกสร้างเป็น result list จากนั้นออกแบบลูป for เพื่อตรวจสอบการมีอยู่ขององค์ประกอบลิสต์แรกในลิสต์ที่สอง และถ้าองค์ประกอบไม่พบในลิสต์ที่สอง จะถูก append เข้า result list โดยใช้ฟังก์ชัน extend

ตัวอย่าง

# Given list A
listA = ['A', 'B', 'B', 'X']
# Given list B
listB = ['B', 'X', 'Z', 'P']
# Creating the result set
res = list(listA)
# Extending result with list B
res.extend(i for i in listB if i not in res)
# Get result
print(res)

การรันโค้ดด้านบนให้ผลลัพธ์ดังนี้:

ผลลัพธ์

['A', 'B', 'B', 'X', 'Z', 'P']

การใช้ set

เราสามารถใช้ฟังก์ชัน set เพื่อได้องค์ประกอบที่ไม่ซ้ำในลิสต์ จากนั้นหาความต่างขององค์ประกอบระหว่างสองลิสต์เพื่อได้เฉพาะองค์ประกอบที่ไม่ซ้ำจากลิสต์ที่สอง สุดท้ายนำผลลัพธ์ของความต่างนี้มาบวกกับลิสต์แรก

ตัวอย่าง

# Given First List
listA = ['A', 'B', 'B', 'X']
# Given Second list
listB = ['B', 'X', 'Z', 'P']
# Making the lists Unique
listA_uniq = set(listA)
listB_uniq = set(listB)
# Capture unique elements from list B
diff_lists = listB_uniq - listA_uniq
res = listA + list(diff_lists)
# Get result
print(res)

การรันโค้ดด้านบนให้ผลลัพธ์ดังนี้:

ผลลัพธ์

['A', 'B', 'B', 'X', 'P', 'Z']