Computer >> Máy Tính >  >> Lập trình >> Python

Python - Kết hợp hai danh sách bằng cách duy trì các bản sao trong danh sách đầu tiên

Trong phân tích dữ liệu bằng python, chúng ta có thể gặp tình huống khi hai danh sách cần được hợp nhất. Nhưng có thể là một thách thức để xử lý các phần tử trùng lặp có trong các danh sách đó. Trong bài viết này, chúng ta sẽ xem cách kết hợp hai danh sách bằng cách duy trì tất cả các phần tử tạo thành danh sách đầu tiên và chỉ các phần tử duy nhất từ ​​danh sách thứ hai.

Sử dụng mở rộng

Trong cách tiếp cận này, chúng tôi lấy danh sách đầu tiên và tạo một danh sách kết quả. Sau đó, chúng tôi thiết kế một vòng lặp for để kiểm tra sự hiện diện của phần tử của danh sách đầu tiên trong danh sách thứ hai và nếu phần tử không được tìm thấy trong danh sách thứ hai thì phần tử đó sẽ được thêm vào danh sách kết quả bằng cách sử dụng hàm mở rộng.

Ví dụ

# Given list A
listA = ['A', 'B', 'B','X']

# Guven 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)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

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

bộ sử dụng

Chúng ta có thể áp dụng hàm set để lấy các phần tử duy nhất có trong danh sách. Sau đó, chúng tôi tìm sự khác biệt về các phần tử giữa hai danh sách này để chỉ nhận được các phần tử duy nhất tạo thành danh sách thứ hai. Cuối cùng, chúng tôi thêm kết quả của sự khác biệt này vào danh sách đầu tiên.

Ví dụ

# GIven First List
listA = ['A', 'B', 'B','X']

# Given Second list
listB= ['B', 'X', 'Z', 'P']

# makign the lists Uniq
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)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

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