Làm cách nào để hợp nhất hai danh sách mà không trùng lặp trong python?

Chào các bạn,

Tôi là người mới trong python
Tôi có danh sách danh sách dưới đây

[[1.0, 'Software Developer', 1329],
 [1.0, 'Software Developer', 2086],
 [0.9230769230769231, 'United States', 1329],
 [0.9230769230769231, 'United States', 2086]]

Bây giờ tôi muốn kết hợp danh sách danh sách này từ phần tử cuối cùng
ví dụ: tôi muốn kết hợp danh sách khi phần tử cuối cùng là 1329 và cần đầu ra bên dưới
[1.0, 'Software Developer', 0.9230769230769231, 'United States',1329]

Và sau đó Làm thành Từ điển bên dưới
{'id': 1329,
'location': 'United States',
'location_score': 0.92,
'title': 'Software Developer',
'title_score': 1.0}

Tôi đã thử và làm trên google nhưng tôi chỉ nhận được danh sách hợp nhất
Làm cách nào tôi có thể kết hợp danh sách danh sách với phần tử chung?

Cảm ơn trước

[Chỉnh sửa]

+

0

-

0

python hợp nhất hai danh sách mà không trùng lặp

Làm cách nào để hợp nhất hai danh sách mà không trùng lặp trong python?
Lennox-A

545

Bản sao_______1_______

Trước tiên chúng ta hãy hiểu tuyên bố vấn đề bằng cách lấy một ví dụ. Chúng tôi đã được cung cấp hai danh sách a và b với các phần tử đã cho

 

Thí dụ

a = [1, 3, 3, 7]
b = [3, 7, 9, 11]

 

đầu ra

Làm cách nào để hợp nhất hai danh sách mà không trùng lặp trong python?

Bây giờ chúng ta phải hợp nhất hai danh sách này lại với nhau để giữ lại tất cả các phần tử trong danh sách a và chỉ các phần tử duy nhất trong danh sách b. Danh sách hợp nhất sẽ trông như thế này.

 

Thí dụ

result = [1, 3, 3, 7, 9, 11]

 

đầu ra

Làm cách nào để hợp nhất hai danh sách mà không trùng lặp trong python?

Chúng ta có thể sử dụng hai cách để đạt được điều này

  • Sử dụng phần mở rộng()
  • Sử dụng set() và lặp lại

 

Sử dụng phần mở rộng()

Trước tiên, chúng tôi xem xét danh sách a và tạo danh sách cuối cùng có tên kết quả . We make use of a for và kiểm tra sự hiện diện của các phần tử của danh sách đầu tiên trong danh sách thứ hai và nếu không tìm thấy phần tử trong danh sách thứ hai

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để kết hợp danh sách, bao gồm cách kết hợp danh sách theo nhiều cách khác nhau. Ví dụ: bạn sẽ tìm hiểu cách nối hai danh sách, kết hợp các danh sách theo trình tự, kết hợp các danh sách mà không trùng lặp, v.v.

Có thể làm việc với danh sách Python là một kỹ năng cực kỳ quan trọng. Danh sách Python là các đối tượng có thể thay đổi nghĩa là chúng có thể được thay đổi. Chúng cũng có thể chứa các giá trị trùng lặp và được sắp xếp theo các cách khác nhau. Bởi vì danh sách Python là những đối tượng thường xuyên như vậy, nên việc có thể thao tác với chúng theo nhiều cách khác nhau là một kỹ năng hữu ích để thăng tiến trong sự nghiệp Python của bạn

Câu trả lời nhanh. Sử dụng toán tử +

Làm cách nào để hợp nhất hai danh sách mà không trùng lặp trong python?

Mục lục

Kết hợp danh sách Python

Cách dễ nhất để kết hợp các danh sách Python là sử dụng giải nén danh sách hoặc toán tử + đơn giản

Trước tiên, hãy xem cách sử dụng toán tử +, vì nó đơn giản và dễ hiểu hơn nhiều về mặt cú pháp. Hãy xem cách chúng ta có thể kết hợp hai danh sách

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = list1 + list2

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']

Chúng ta có thể thấy ở đây rằng khi chúng ta in ra danh sách thứ ba, nó kết hợp danh sách thứ nhất và thứ hai

Tương tự, chúng ta có thể tạo danh sách mới bằng cách giải nén tất cả các mục khỏi danh sách mà chúng ta muốn kết hợp. Bằng cách sử dụng toán tử

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
1, chúng ta có thể truy cập tất cả các mục trong cả hai danh sách và giải nén chúng thành danh sách thứ ba

Hãy xem nó trông như thế nào

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']

Trong phần tiếp theo, bạn sẽ tìm hiểu cách kết hợp hai danh sách trong Python theo kiểu xen kẽ, sử dụng hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 của Python

Bạn muốn tìm hiểu thêm về chuỗi f Python?

Kết hợp các danh sách Python xen kẽ bằng Zip

Khi bạn kết hợp các danh sách Python, bạn có thể muốn thêm các mục theo phương thức xen kẽ. Ví dụ: bạn có thể muốn thêm mục đầu tiên từ cả hai danh sách, sau đó là mục thứ hai, v.v.

Để làm được điều này, chúng ta có thể sử dụng hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 của Python. Hàm zip lặp lại nhiều mục một cách tuần tự, cho phép chúng tôi truy cập các mục theo thứ tự

Hãy xem cách chúng ta có thể sử dụng hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 để kết hợp các danh sách Python theo kiểu xen kẽ

# Merge Two Lists in Alternating Fashion
list1 = ['1a', '2a', '3a']
list2 = ['1b', '2b', '3b']

list3 = [item for sublist in zip(list1, list2) for item in sublist]

print(list3)

# Returns: ['1a', '1b', '2a', '2b', '3a', '3b']

Hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 tạo đối tượng zip, về mặt kỹ thuật là đối tượng trình tạo. Khi chúng tôi biến danh sách này trở lại thành danh sách, chúng tôi sẽ truy cập tất cả các mục trong trình tạo. Do đó, chúng ta có thể sử dụng hàm để kết hợp hai danh sách Python theo thứ tự tuần tự

Sau đó, chúng tôi sử dụng khả năng hiểu danh sách để làm phẳng đối tượng zip. Để tìm hiểu thêm về cách thức hoạt động của tính năng này, hãy xem hướng dẫn của tôi về làm phẳng danh sách các danh sách

Trong phần tiếp theo, bạn sẽ học cách kết hợp hai danh sách Python mà không trùng lặp

Bạn muốn tìm hiểu cách sử dụng hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 của Python để lặp qua hai danh sách?

Kết hợp danh sách Python mà không trùng lặp

Danh sách Python cho phép chúng tôi có các giá trị trùng lặp trong đó – đó là một trong những thuộc tính khiến chúng trở nên đặc biệt

Một cấu trúc dữ liệu Python khác, một bộ, tương tự như một danh sách theo một số cách, nhưng không thể có các mục trùng lặp. Chúng tôi có thể sử dụng tập hợp để loại bỏ bất kỳ bản sao nào khỏi danh sách, bằng cách chuyển đổi danh sách thành tập hợp. Để tìm hiểu thêm về cách loại bỏ các bản sao khỏi danh sách Python, hãy xem hướng dẫn của tôi tại đây

Hãy xem cách chúng ta có thể kết hợp các danh sách của mình và loại bỏ tất cả các danh sách trùng lặp bằng cách sử dụng một bộ

# Combine Python Lists without Duplicates

list1 = [1, 2, 3, 4]
list2 = [4, 5, 6, 7]

list3 = list(set(list1 + list2))

print(list3)

# Returns: [1, 2, 3, 4, 5, 6, 7]

Hãy khám phá những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã kết hợp các danh sách của mình bằng cách sử dụng toán tử +,
  2. Sau đó, chúng tôi đã chuyển đổi danh sách đó thành một bộ để loại bỏ các mục trùng lặp
  3. Sau đó, chúng tôi đã chuyển đổi tập hợp trở lại thành một danh sách

Trong phần tiếp theo, bạn sẽ tìm hiểu cách nối các mảng bằng Python

Cần tự động đổi tên tập tin? . Hơn cả một người học trực quan, toàn bộ hướng dẫn cũng có sẵn dưới dạng video trong bài đăng

Mảng nối Python

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
9, thư viện khoa học dữ liệu phổ biến của Python, có cấu trúc dữ liệu dạng danh sách được gọi là numpy
# Merge Two Lists in Alternating Fashion
list1 = ['1a', '2a', '3a']
list2 = ['1b', '2b', '3b']

list3 = [item for sublist in zip(list1, list2) for item in sublist]

print(list3)

# Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
0. Các mảng này có một số phương thức khác nhau để làm việc với chúng dễ dàng hơn

Một trong những phương pháp này là phương pháp

# Merge Two Lists in Alternating Fashion
list1 = ['1a', '2a', '3a']
list2 = ['1b', '2b', '3b']

list3 = [item for sublist in zip(list1, list2) for item in sublist]

print(list3)

# Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
1, nối hai danh sách

Hãy xem cách chúng ta có thể sử dụng Python và

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
9 để làm việc này

# Concactenate Python Arrays
import numpy as np

list1 = [1,2,3]
list2 = [4,5,6]

array1 = np.array(list1)
array2 = np.array(list2)

array3 = np.concatenate((array1, array2.T))

print(array3)

# Returns: [1 2 3 4 5 6]

Hãy khám phá những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã chuyển đổi danh sách của mình thành các mảng có nhiều mảng
  2. Sau đó, chúng tôi đã áp dụng phương thức nối cho mảng đầu tiên và chuyển sang mảng thứ hai

Trong phần tiếp theo, bạn sẽ học cách kết hợp các danh sách Python bằng vòng lặp for

Bạn muốn tìm hiểu cách in đẹp tệp JSON bằng Python?

Kết hợp danh sách Python với vòng lặp For

Trong phần này, bạn sẽ học cách sử dụng vòng lặp for để nối các mục từ danh sách này sang danh sách khác. Mặc dù đây không phải là cách tiếp cận thực sự cần thiết trong hầu hết các trường hợp, nhưng nó giúp bạn linh hoạt trong việc đưa vào những mục nào

Ví dụ: sử dụng vòng lặp for, bạn có thể bỏ qua một số mục

Hãy xem xét hai ví dụ. (1) nơi bạn kết hợp tất cả các mục và (2) nơi bạn kết hợp có điều kiện

# Combine Two Python Lists with a For Loop
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

# Combine all items
for item in list2:
    list1.append(item)

print(list1)
# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']

# Combine items conditionally
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']
for item in list2:
    if len(item) > 3:
        list1.append(item)

print(list1)
# Returns: ['datagy', 'is', 'a', 'site', 'learn', 'python']

Hãy khám phá những gì chúng tôi đã làm ở đây trong cả hai ví dụ

  1. Chúng tôi đã lặp lại danh sách thứ hai của mình và thêm từng mục vào danh sách đầu tiên của chúng tôi
  2. Trong ví dụ có điều kiện, chúng tôi đã kiểm tra một điều kiện. Nếu điều kiện được đáp ứng, thì chúng tôi sẽ thêm mục vào danh sách. Nếu không, thì mục đó bị bỏ qua

Trong phần tiếp theo, bạn sẽ tìm hiểu cách sử dụng khả năng hiểu danh sách Python để kết hợp các danh sách trong Python

Bạn muốn tìm hiểu thêm về vòng lặp for Python? . Thay vào đó, bạn muốn xem một video?

Kết hợp Danh sách Python với Hiểu Danh sách

Chúng ta cũng có thể sử dụng cách hiểu danh sách Python để kết hợp hai danh sách trong Python. Cách tiếp cận này sử dụng cách hiểu danh sách hơi khác thường. chúng tôi thực sự chỉ sử dụng khả năng hiểu danh sách để lặp qua danh sách và nối thêm vào danh sách khác

Hãy xem nó trông như thế nào

# Combine Two Python Lists with a List Comprehension
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

[list1.append(item) for item in list2]

print(list1)
# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']

Lý do khiến cách tiếp cận này hơi kỳ lạ là do khả năng hiểu tự nó trôi nổi, hoạt động giống như một tuyên bố hơn là sự gán truyền thống của một danh sách mới. Về mặt cú pháp, cách tiếp cận này lạ và không phục vụ nhiều mục đích khác với vòng lặp for

Trong phần tiếp theo, bạn sẽ tìm hiểu cách kết hợp các danh sách Python chỉ với các phần tử phổ biến

Bạn muốn tìm hiểu thêm về cách hiểu danh sách Python? . Thêm một người học trực quan, hãy xem hướng dẫn YouTube của tôi tại đây

Kết hợp danh sách Python với các phần tử phổ biến

Có thể có lúc bạn chỉ muốn kết hợp các phần tử chung giữa hai danh sách Python, nghĩa là giao điểm giữa hai danh sách. Tôi có một hướng dẫn chuyên sâu về chủ đề này tại đây, hướng dẫn chi tiết về cách thức hoạt động của phương pháp này

Cách tiếp cận được hiển thị bên dưới sử dụng

# Merge Two Lists in Alternating Fashion
list1 = ['1a', '2a', '3a']
list2 = ['1b', '2b', '3b']

list3 = [item for sublist in zip(list1, list2) for item in sublist]

print(list3)

# Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
3 để tạo các phần tử duy nhất trên các danh sách. Hướng dẫn được liên kết ở trên cho thấy nhiều cách tiếp cận khác nhau để có thể thực hiện điều này

Hãy cùng xem cách kết hợp các danh sách chỉ với các phần tử phổ biến

# Combine common elements between two lists

list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]

list3 = list(set(list1).intersection(set(list2)))
print(list3)

# Returns: [3, 4]

Hãy khám phá những gì chúng tôi đã làm ở đây

  1. Cả hai danh sách được chuyển đổi thành bộ
  2. Bộ đầu tiên sử dụng phương thức
    # Merge Two Lists in Alternating Fashion
    list1 = ['1a', '2a', '3a']
    list2 = ['1b', '2b', '3b']
    
    list3 = [item for sublist in zip(list1, list2) for item in sublist]
    
    print(list3)
    
    # Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
    4 và chuyển bộ thứ hai vào đối số của nó
  3. Tập hợp cuối cùng được trả về dưới dạng danh sách

Trong phần tiếp theo, bạn sẽ tìm hiểu cách kết hợp hai danh sách chỉ sử dụng các phần tử duy nhất trên hai danh sách

Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas

Chỉ kết hợp danh sách Python với các phần tử duy nhất

Tương tự như ví dụ trên, bạn có thể muốn kết hợp hai danh sách và chỉ giữ lại các phần tử duy nhất trên hai danh sách

Đối với cách tiếp cận này, chúng tôi sẽ lại sử dụng các tập hợp, tương tự như cách tiếp cận ở trên, trước tiên hãy kiểm tra giao điểm giữa hai danh sách

Hãy xem cách chúng ta có thể làm điều này trong Python và sau đó đi sâu vào cách thức hoạt động của nó

# Combine unique elements between two lists

list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]

common_elements = list(set(list1).intersection(set(list2)))
combined = list1 + list2

for item in common_elements:
    combined = [element for element in combined if element != item]

print(combined)
# Returns: [1, 2, 5, 6]

Hãy khám phá những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã tìm thấy điểm giao nhau giữa hai danh sách và tạo một danh sách có tên là
    # Merge Two Lists in Alternating Fashion
    list1 = ['1a', '2a', '3a']
    list2 = ['1b', '2b', '3b']
    
    list3 = [item for sublist in zip(list1, list2) for item in sublist]
    
    print(list3)
    
    # Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
    5
  2. Sau đó, chúng tôi kết hợp hai danh sách của mình thành một danh sách có tên là
    # Merge Two Lists in Alternating Fashion
    list1 = ['1a', '2a', '3a']
    list2 = ['1b', '2b', '3b']
    
    list3 = [item for sublist in zip(list1, list2) for item in sublist]
    
    print(list3)
    
    # Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
    6
  3. Sau đó, chúng tôi lặp lại danh sách các yếu tố phổ biến
  4. Đối với mỗi mục, chúng tôi đã thực hiện hiểu danh sách lặp qua phần tử chung, loại trừ phần tử đó khỏi danh sách kết hợp

Lý do chúng tôi sử dụng tính năng hiểu danh sách là vì nó cho phép chúng tôi kiểm tra các bản sao. Nếu chúng tôi chỉ đơn giản sử dụng một phương pháp, chẳng hạn như

# Merge Two Lists in Alternating Fashion
list1 = ['1a', '2a', '3a']
list2 = ['1b', '2b', '3b']

list3 = [item for sublist in zip(list1, list2) for item in sublist]

print(list3)

# Returns: ['1a', '1b', '2a', '2b', '3a', '3b']
7, thì chỉ phiên bản đầu tiên sẽ bị xóa

Bạn muốn tìm hiểu cách sử dụng hàm

# Merge Two Lists
list1 = ['datagy', 'is', 'a', 'site']
list2 = ['to', 'learn', 'python']

list3 = [*list1, *list2]

print(list3)

# Returns: ['datagy', 'is', 'a', 'site', 'to', 'learn', 'python']
2 của Python để lặp qua hai danh sách?

Phần kết luận

Trong bài đăng này, bạn đã học cách sử dụng Python để kết hợp hai danh sách. Bạn đã học cách làm điều này bằng cách kết hợp hai danh sách theo thứ tự. Bạn cũng đã học cách kết hợp các danh sách theo trình tự xen kẽ và không trùng lặp. Bạn cũng đã học cách sử dụng các vòng lặp for và khả năng hiểu danh sách để kết hợp các danh sách Python. Cuối cùng, bạn đã học cách kết hợp danh sách chỉ với các phần tử phổ biến và chỉ với các phần tử duy nhất

3 cách khác nhau để kết hợp 2 danh sách trong Python là gì?

Sau đây là 6 cách nối danh sách trong Python. .
toán tử nối (+)
Phương pháp ngây thơ
Danh sách hiểu
phương pháp mở rộng()
'*' nhà điều hành
itertools. phương thức chuỗi ()

Cách chính xác để hợp nhất hai danh sách trong Python là gì?

Một cách đơn giản và phổ biến để hợp nhất (nối) hai danh sách trong Python là sử dụng phương thức append() dựng sẵn của python . Phương thức append() trong python thêm một mục vào danh sách hiện có. Nó không trả về một danh sách các mục mới. Thay vào đó, nó sửa đổi danh sách ban đầu bằng cách thêm mục vào cuối danh sách.

Làm cách nào để hợp nhất hai từ điển trong Python và loại bỏ các bản trùng lặp?

Làm cách nào để hợp nhất các từ điển trong Python? .
1) Sử dụng phương thức update(). Bạn có thể hợp nhất hai từ điển trong python bằng phương thức update(). .
2) Sử dụng hợp nhất (. ) nhà điều hành. .
3) Sử dụng toán tử **. .
4) Giải nén từ điển thứ hai. .
5) Sử dụng bộ sưu tập. .
6) Sử dụng itertools. .
7) Sử dụng từ điển hiểu. .
8) Thêm giá trị của các khóa chung