Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

Python hợp nhất hai danh sách mà không có bản sao có thể được thực hiện bằng cách sử dụng một bộ. Và sử dụng toán tử + để hợp nhất nó.

list(set(list1 + list2))

Mã ví dụ đơn giản bằng cách sử dụng tập hợp với toán tử +.

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)

Đầu ra::

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

Một phương pháp khác sử dụng Numpy

Bạn phải nhập một mô -đun Numpy cho nó.

import numpy as np

list1 = [1, 2, 2, 5]

list2 = [2, 5, 7, 9]

res = np.unique(list1 + list2)
print(res)

Đầu ra: [1 2 5 7 9]: [1 2 5 7 9]

Kết hợp hai danh sách và không có bản sao và don lồng loại bỏ các bản sao trong danh sách ban đầu

Sử dụng Set để loại bỏ trùng lặp mà không cần xóa phần tử khỏi danh sách ban đầu.

list1 = [1, 2, 2, 5]

list2 = [2, 5, 7, 9]

res = list(set(list1 + list2))

print(res)
print(list1)
print(list2)

Đầu ra::

Một phương pháp khác sử dụng Numpy
[1, 2, 2, 5]
[2, 5, 7, 9]

Bạn phải nhập một mô -đun Numpy cho nó.

set_1 = set(list_1)

set_2 = set(list_2)

Đầu ra: [1 2 5 7 9]

Kết hợp hai danh sách và không có bản sao và don lồng loại bỏ các bản sao trong danh sách ban đầu IDE: PyCharm 2021.3.3 (Community Edition)

Sử dụng Set để loại bỏ trùng lặp mà không cần xóa phần tử khỏi danh sách ban đầu.

[1, 2, 5, 7, 9] [1, 2, 2, 5] [2, 5, 7, 9]

Bạn cũng có thể chuyển đổi danh sách thành một bộ mới. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

Hãy bình luận nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào về chủ đề danh sách Python này.

160

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có hai danh sách mà tôi cần kết hợp trong đó danh sách thứ hai có bất kỳ bản sao nào của danh sách đầu tiên bị bỏ qua. .. Một chút khó giải thích, vì vậy hãy để tôi chỉ ra một ví dụ về mã trông như thế nào, và kết quả là những gì tôi muốn.

first_list = [1, 2, 2, 5]

second_list = [2, 5, 7, 9]

# The result of combining the two lists should result in this list:
resulting_list = [1, 2, 2, 5, 7, 9]

Bạn sẽ nhận thấy rằng kết quả có danh sách đầu tiên, bao gồm hai giá trị "2" của nó, nhưng thực tế là Second_list cũng có thêm giá trị 2 và 5 không được thêm vào danh sách đầu tiên.

Thông thường đối với một cái gì đó như thế này tôi sẽ sử dụng các bộ, nhưng một tập hợp trên First_list sẽ thanh lọc các giá trị trùng lặp mà nó đã có. Vì vậy, tôi chỉ đơn giản là tự hỏi cách tốt nhất/nhanh nhất để đạt được sự kết hợp mong muốn này.

Thanks.

Hỏi ngày 23 tháng 8 năm 2009 lúc 19:27Aug 23, 2009 at 19:27

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

2

Bạn cần nối vào danh sách đầu tiên các yếu tố của danh sách thứ hai không trong bộ đầu tiên là cách dễ dàng nhất để xác định các yếu tố nào của chúng, như thế này:

first_list = [1, 2, 2, 5]
second_list = [2, 5, 7, 9]

in_first = set(first_list)
in_second = set(second_list)

in_second_but_not_in_first = in_second - in_first

result = first_list + list(in_second_but_not_in_first)
print(result)  # Prints [1, 2, 2, 5, 9, 7]

Hoặc nếu bạn thích một lớp lót 8-)

print(first_list + list(set(second_list) - set(first_list)))

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

Phượng Hoàng

6.5284 Huy hiệu vàng37 Huy hiệu bạc44 Huy hiệu đồng4 gold badges37 silver badges44 bronze badges

Đã trả lời ngày 23 tháng 8 năm 2009 lúc 19:32Aug 23, 2009 at 19:32

RichiehindlerichiehindleRichieHindle

264K46 Huy hiệu vàng353 Huy hiệu bạc394 Huy hiệu đồng46 gold badges353 silver badges394 bronze badges

4

resulting_list = list(first_list)
resulting_list.extend(x for x in second_list if x not in resulting_list)

Đã trả lời ngày 23 tháng 8 năm 2009 lúc 19:32Aug 23, 2009 at 19:32

RichiehindlerichiehindleNed Batchelder

264K46 Huy hiệu vàng353 Huy hiệu bạc394 Huy hiệu đồng71 gold badges552 silver badges650 bronze badges

4

Ned Batchelderned Batchelder

first_list = [1, 2, 2, 5]
second_list = [2, 5, 7, 9]

resultList= list(set(first_list) | set(second_list))

print(resultList)
# Results in : resultList = [1,2,5,7,9]

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

352K71 Huy hiệu vàng552 Huy hiệu bạc650 Huy hiệu ĐồngFeb 12, 2013 at 12:51

1

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
0

Bạn có thể sử dụng các bộ:

Đã trả lời ngày 12 tháng 2 năm 2013 lúc 12:5127 gold badges80 silver badges88 bronze badges

Paul RoubDec 2, 2017 at 19:53

36K27 Huy hiệu vàng80 Huy hiệu bạc88 Huy hiệu đồng

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
1

Đã trả lời ngày 2 tháng 12 năm 2017 lúc 19:53Jun 15, 2018 at 8:47

Bạn có thể đưa nó xuống một dòng mã duy nhất nếu bạn sử dụng Numpy:mosegui

Đã trả lời ngày 15 tháng 6 năm 2018 lúc 8:474 silver badges15 bronze badges

Mosguimosgui

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
2

6094 Huy hiệu bạc15 Huy hiệu ĐồngMay 11, 2018 at 18:46

Đơn giản nhất với tôi là:Rafiq

Đã trả lời ngày 11 tháng 5 năm 2018 lúc 18:463 gold badges14 silver badges28 bronze badges

1

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
3

Đã trả lời ngày 23 tháng 8 năm 2009 lúc 19:32Aug 23, 2009 at 19:32

RichiehindlerichiehindleDaniel Roseman

264K46 Huy hiệu vàng353 Huy hiệu bạc394 Huy hiệu đồng61 gold badges841 silver badges853 bronze badges

3

Ned Batchelderned Batchelder

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
4

352K71 Huy hiệu vàng552 Huy hiệu bạc650 Huy hiệu Đồng

Bạn có thể sử dụng các bộ:Nov 18, 2015 at 23:07

Hướng dẫn merge two list python unique - hợp nhất hai danh sách python duy nhất

z0rz0rz0r

Đã trả lời ngày 12 tháng 2 năm 2013 lúc 12:514 gold badges61 silver badges79 bronze badges

Paul Roub

36K27 Huy hiệu vàng80 Huy hiệu bạc88 Huy hiệu đồng

Đã trả lời ngày 2 tháng 12 năm 2017 lúc 19:53Sep 16, 2018 at 8:28

Bạn có thể đưa nó xuống một dòng mã duy nhất nếu bạn sử dụng Numpy:Alon

Đã trả lời ngày 15 tháng 6 năm 2018 lúc 8:476 silver badges7 bronze badges

Mosguimosgui

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
5

6094 Huy hiệu bạc15 Huy hiệu Đồng

Đơn giản nhất với tôi là:

Đã trả lời ngày 11 tháng 5 năm 2018 lúc 18:467 gold badges36 silver badges51 bronze badges

RafiqrafiqSep 12, 2012 at 13:34

1.1563 huy hiệu vàng14 Huy hiệu bạc28 Huy hiệu đồngVeilEclipse

Daniel Rosemandaniel Roseman8 gold badges34 silver badges52 bronze badges

575K61 Huy hiệu vàng841 Huy hiệu bạc853 Huy hiệu Đồng

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
6

Bạn cũng có thể kết hợp các câu trả lời của Richiehindle và Ned Batchelder cho thuật toán O (M+N) trung bình của trường hợp lưu trữ thứ tự:Apr 13 at 17:30

Lưu ý rằng

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
8 có độ phức tạp trong trường hợp xấu nhất của O (M), do đó, độ phức tạp trong trường hợp xấu nhất của mã này vẫn là O (M*N).B. Mohammad

Đã trả lời ngày 18 tháng 11 năm 2015 lúc 23:071 gold badge10 silver badges26 bronze badges

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)
7

7.8654 Huy hiệu vàng61 Huy hiệu bạc79 Huy hiệu đồng

Dựa trên công thức:Apr 29, 2015 at 11:56

Làm thế nào để bạn hợp nhất hai danh sách mà không sao chép trong Python?

Sử dụng Set () và Danh sách () để kết hợp hai danh sách trong khi xóa các bản sao trong danh sách mới và giữ các bản sao trong danh sách ban đầu. Đặt bộ (list_1) và set (list_2) để tạo các bộ của các phần tử trong list_1 và list_2 tương ứng không chứa các bản sao. to combine two lists while removing duplicates in the new list and keeping duplicates in original list. Call set(list_1) and set(list_2) to generate sets of the elements in list_1 and list_2 respectively which contain no duplicates.

Làm thế nào để bạn kết hợp hai danh sách trong Python?

Một cách đơn giản và phổ biến để hợp nhất (tham gia) hai danh sách trong Python là sử dụng phương thức Python được xây dựng trong phần adcend ().Phương thức append () trong Python thêm một mục duy nhất vào danh sách hiện có.Nó không trả lại một danh sách các mặt hàng 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.using the in-built append() method of python. The append() method in python adds a single item to the existing list. It doesn't return a new list of items. Instead, it modifies the original list by adding the item to the end of the list.

Làm cách nào để hợp nhất các danh sách lồng nhau trong Python?

Đầu tiên, làm phẳng các danh sách lồng nhau.Lấy giao nhau bằng Filter () và lưu nó vào 'LST3'.Bây giờ tìm các phần tử không phải trong LST1 hoặc trong LST2 và lưu chúng vào 'tạm thời'.Cuối cùng, nối 'temp' vào 'lst3'.

Làm thế nào để bạn loại bỏ các bản sao khỏi một danh sách trong Python?

Có nhiều cách để loại bỏ các bản sao khỏi danh sách Python ...
Sử dụng một danh sách tạm thời và vòng lặp ..
Sử dụng phương thức tích hợp set () ..
Sử dụng các phím từ điển ..
Danh sách số lượng () hàm ..
Danh sách hiểu ..