Hướng dẫn which does not allow duplicates in python? - cái nào không cho phép trùng lặp 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ố () hàm
  • Danh sách hiểu

Xóa các bản sao khỏi danh sách

Danh sách Python có thể chứa các yếu tố trùng lặp. Hãy cùng xem xét các ví dụ về việc loại bỏ các yếu tố trùng lặp theo những cách khác nhau.

1. Sử dụng danh sách tạm thời

Đây là cách vũ phu để loại bỏ các yếu tố trùng lặp khỏi danh sách. Chúng tôi sẽ tạo ra một danh sách tạm thời và chỉ các yếu tố phụ thuộc vào nó nếu nó không có mặt.

ints_list = [1, 2, 3, 4, 3, 2]

temp = []

for x in ints_list:
    if x not in temp:
        temp.append(x)

ints_list = temp

print(f'Updated List after removing duplicates = {temp}')

Đầu ra:

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
2 Đọc được đề xuất: Python F-String:
num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
2 Recommended Reading: Python f-strings

2. Đặt () hàm

Bộ Python không có các yếu tố trùng lặp. Chúng ta có thể sử dụng hàm set-in () tích hợp để chuyển đổi danh sách thành một tập hợp, sau đó sử dụng hàm danh sách () để chuyển đổi nó trở lại danh sách.

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]

3. Liệt kê các yếu tố làm khóa từ điển

Chúng tôi biết rằng các khóa từ điển là duy nhất. Lớp Dict có chức năng FromKeys () chấp nhận một điều có thể tạo ra để tạo từ điển với các phím từ Itable.

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]

4. Hàm số lượng () danh sách - không được khuyến nghị

Phương thức Danh sách () trả về số lần xuất hiện của giá trị. Chúng ta có thể sử dụng nó với phương thức Remove () để loại bỏ các phần tử trùng lặp khỏi danh sách.

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]

Lưu ý: Như đã chỉ ra trong nhận xét dưới đây, việc sử dụng hàm Count () không được khuyến khích trong khi loại bỏ phần tử khỏi cùng một trình lặp vì nó có thể dẫn đến kết quả không mong muốn. Ví dụ: For example:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice

5. Liệt kê hiểu biết

Chúng ta có thể tạo một danh sách từ một sự khác biệt bằng cách sử dụng danh sách hiểu. Kỹ thuật này giống như sử dụng danh sách tạm thời và vòng lặp For để loại bỏ các phần tử trùng lặp. Nhưng, nó làm giảm số lượng dòng của mã.

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]

Cách tốt nhất để loại bỏ các bản sao khỏi danh sách

Nếu bạn không muốn các yếu tố trùng lặp, bạn nên sử dụng Set. Nhưng, nếu bạn phải xóa các giá trị trùng lặp khỏi danh sách, thì tôi sẽ thích hàm đếm () hơn vì nó không tạo ra một đối tượng danh sách hoặc bộ tạm thời khác. Vì vậy, nó có nhiều bộ nhớ hiệu quả hơn.

Phương pháp đặt Python

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]

Trong các phần sau, chúng tôi sẽ thảo luận về một số phương pháp được sử dụng phổ biến nhất được cung cấp bởi Python mà chúng tôi chưa thảo luận.

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])

Giới thiệu

Trong Python, một bộ là một cấu trúc dữ liệu lưu trữ các mục chưa được đặt hàng. Các mục đã thiết lập cũng không được đăng ký. Giống như một danh sách, một bộ cho phép bổ sung và loại bỏ các yếu tố. Tuy nhiên, có một vài đặc điểm độc đáo xác định một tập hợp và tách nó khỏi các cấu trúc dữ liệu khác:

  • Một bộ không giữ các mục trùng lặp
  • Các yếu tố của tập hợp là bất biến, nghĩa là chúng không thể thay đổi, nhưng bản thân bộ này có thể thay đổi, nghĩa là nó có thể được thay đổi
  • Vì các mục đã đặt không được lập chỉ mục, các bộ không hỗ trợ bất kỳ hoạt động cắt hoặc lập chỉ mục nào.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách tạo và sử dụng các bộ trong Python, cùng với một số hoạt động phổ biến mà bạn chạy chống lại chúng.

Cách tạo một bộ trong Python

Một bộ có thể chứa bất kỳ số lượng vật phẩm nào và các mục có thể thuộc các loại khác nhau (bộ sưu tập không đồng nhất) như số nguyên, chuỗi, bộ dữ liệu, v.v.

Lưu ý: Một tập hợp không chấp nhận các yếu tố có thể thay đổi, chẳng hạn như danh sách và từ điển. A set does not accept mutable elements, such as lists and dictionaries.

Chúng ta có thể tạo một tập hợp bằng cách chuyển tất cả các phần tử tập hợp bên trong niềng răng xoăn

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
7 và tách các phần tử bằng dấu phẩy (
num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
8):

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)

Điều này sẽ dẫn đến:

{1, 2, 3, 4, 5, 6}

Chúng tôi chỉ tạo ra một tập hợp các số. Chúng ta cũng có thể tạo một tập hợp các giá trị chuỗi:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
0

Kết quả là:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
1

Lưu ý: Lưu ý cách các phần tử trong đầu ra không được đặt hàng giống như cách chúng tôi đã thêm chúng vào tập hợp. Lý do cho điều này là các mục đặt không được đặt hàng. Nếu bạn chạy cùng một mã một lần nữa, bạn có thể sẽ nhận được đầu ra với các phần tử được sắp xếp theo một thứ tự khác. Notice how elements in the output are not ordered in the same way we added them to the set. The reason for this is that set items are not ordered. If you run the same code again, you're likely to get an output with the elements arranged in a different order.

Chúng ta cũng có thể tạo một tập hợp với các yếu tố của các loại khác nhau:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
2

Hãy xác minh điều này mang lại một tập hợp hợp lệ:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
3

Tất cả các yếu tố của tập hợp trên thuộc về các loại khác nhau. Chúng tôi cũng có thể tạo một bộ từ một danh sách. Điều này có thể được thực hiện bằng cách gọi phương thức

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
5 tích hợp của Python:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
4

Kết quả này trong:

{1, 2, 3, 4, 5, 6}

Như đã nêu ở trên, các bộ không giữ các mục trùng lặp. Giả sử danh sách của chúng tôi có các mục trùng lặp:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
6

Bộ sẽ chỉ lưu trữ các giá trị duy nhất từ ​​danh sách:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
7

Bộ này về cơ bản đã loại bỏ các bản sao và chỉ trả về một trong mỗi mục trùng lặp. Điều này cũng xảy ra khi chúng ta đang tạo một bộ từ đầu:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
8

Một lần nữa, bộ đã loại bỏ các bản sao và chỉ trả về một trong các mục trùng lặp:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
7

Nếu bạn muốn tạo một bộ trống và sử dụng niềng răng xoăn trống (

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
7), bạn sẽ tạo một từ điển trống chứ không phải là một tập trống:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
0

Để tạo một tập trống trong Python, chúng tôi chỉ cần gọi trên phương thức

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
5 mà không chuyển bất kỳ giá trị nào:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
1

Cách truy cập các mục đặt trong Python

Python không cung cấp cho chúng tôi một cách truy cập vào một mục đặt riêng lẻ bằng cách sử dụng ký hiệu đăng ký (

{1, 2, 3, 4, 5, 6}
2). Tuy nhiên, chúng ta có thể sử dụng vòng lặp
{1, 2, 3, 4, 5, 6}
3 để lặp qua tất cả các mục của một bộ:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
2

Điều này sẽ in từng phần tử trong một bộ

{1, 2, 3, 4, 5, 6}
4:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
3

Chúng tôi cũng có thể kiểm tra sự hiện diện của một phần tử trong một bộ bằng từ khóa

{1, 2, 3, 4, 5, 6}
5:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
4

{1, 2, 3, 4, 5, 6}
6 có mặt trong bộ
{1, 2, 3, 4, 5, 6}
4, điều này sẽ trả về
{1, 2, 3, 4, 5, 6}
8:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
5

Tương tự, việc tìm kiếm một phần tử không tồn tại trong bộ trả về

{1, 2, 3, 4, 5, 6}
9:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
6

Điều này sẽ dẫn đến:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
7

Cách thêm các mục vào bộ Python

Python cho phép chúng tôi thêm các mục mới vào một bộ bằng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
00:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
8

Mục

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
01 sẽ được thêm thành công vào tập hợp:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
9

Nếu đó là một tập hợp các số, chúng tôi sẽ không vượt qua phần tử mới trong các trích dẫn như chúng tôi phải làm cho một chuỗi:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
0

Sẽ thêm

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
02 vào
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
03:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
1

Trong phần tiếp theo, chúng tôi sẽ thảo luận về cách loại bỏ các yếu tố khỏi các bộ.

Cách xóa các mục khỏi bộ python

Python một cách tự nhiên cho phép chúng tôi xóa một mục khỏi một bộ, nhưng chúng tôi không thể xóa nó thông qua một chỉ mục vì các phần tử đặt không được lập chỉ mục. Các mục có thể được loại bỏ bằng các phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04 hoặc
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05, với tham chiếu đến phần tử cụ thể đó.

Lưu ý: Hãy nhớ rằng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04 sẽ không gây ra lỗi nếu mục không được tìm thấy trong tập hợp. Tuy nhiên, nếu phương thức
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05 được sử dụng và không tìm thấy mục, một lỗi sẽ được nêu ra.
Keep in mind that the
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04 method will not raise an error if the item is not found in the set. However, if the
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05 method is used and the item is not found, an error will be raised.

discard()

Hãy trình bày cách xóa một phần tử bằng phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04:
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04 method
:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
2

Phần tử

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
09 sẽ bị xóa khỏi tập hợp:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
3

remove()

Tương tự, phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05 có thể được sử dụng như sau:
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05 method
can be used as follows:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
4

Điều này sẽ mang lại kết quả tương tự:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
3

Loại bỏ các yếu tố không tồn tại?

Bây giờ, chúng ta hãy cố gắng loại bỏ một yếu tố không tồn tại trong tập hợp. Trước tiên hãy sử dụng phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
04:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
6

Chạy mã ở trên sẽ không ảnh hưởng đến tập hợp theo bất kỳ cách nào:

{1, 2, 3, 4, 5, 6}

Bây giờ, hãy xem điều gì xảy ra khi chúng ta sử dụng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
05 trong cùng một kịch bản:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
8

Trong trường hợp này, việc cố gắng xóa một phần tử không tồn tại sẽ gây ra lỗi:

ints_list = [1, 2, 3, 4, 3, 2]

for x in ints_list:
    if ints_list.count(x) > 1:
        ints_list.remove(x)
print(ints_list)  # [1, 2, 3, 4]
9

pop()

Với phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
13, chúng ta có thể xóa và trả về một phần tử. Vì các yếu tố không được đặt hàng, chúng tôi không thể biết hoặc dự đoán mục sẽ bị xóa:
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
13 method
, we can remove and return an element. Since the elements are unordered, we cannot tell or predict the item that will be removed:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
0

Điều này sẽ trả về phần tử bị loại bỏ từ tập hợp:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
1

Bạn có thể sử dụng cùng một phương thức để xóa một phần tử và trả về các phần tử còn lại trong tập hợp:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
2

Sẽ in ra các yếu tố còn lại trong tập hợp:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
3

clear()

Phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
14 của Python giúp chúng tôi loại bỏ tất cả các yếu tố khỏi một bộ:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
4

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

Đầu ra là một

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
5 trống không có phần tử trong đó:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
5

Liên minh các bộ Python

Giả sử chúng ta có hai bộ, A và B. Sự kết hợp của hai bộ là một bộ với tất cả các yếu tố từ cả hai bộ. Một hoạt động như vậy được thực hiện bằng phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
16 của Python.

Ví dụ: giả sử chúng tôi có hai bộ chứa tên tháng:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
6

Sau khi chạy mã này, bộ

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
17 sẽ chứa sự kết hợp của các bộ
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
18 và
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
19:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
7

Một liên minh cũng có thể được thực hiện trên hơn hai bộ và tất cả các yếu tố của chúng sẽ được kết hợp thành một bộ duy nhất:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
8

Điều này sẽ dẫn đến:

values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]

for x in values:
    if values.count(x) > 1:
        values.remove(x)
print(values)  # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
9

Trong quá trình hoạt động của Liên minh, các bản sao bị bỏ qua và chỉ có một trong số các mục trùng lặp được hiển thị:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
0

Điều này sẽ dẫn đến tập hợp chỉ chứa các giá trị duy nhất từ ​​các bộ bắt đầu:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
1

Toán tử

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
20 cũng có thể được sử dụng để tìm sự kết hợp của hai hoặc nhiều bộ:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
2

Điều này sẽ mang lại kết quả tương tự như sử dụng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
21:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
3

Nếu bạn muốn thực hiện một liên minh trên hơn hai bộ, hãy tách các tên bộ bằng toán tử

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
20:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
4

Điều này sẽ dẫn đến:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
1

Giao điểm của bộ Python

Giả sử bạn có hai bộ, A và B. Giao điểm của chúng là một tập hợp với các yếu tố có mặt cả trong A và B.

Có thể đạt được hoạt động giao nhau trong các bộ bằng cách sử dụng toán tử

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
23 hoặc phương pháp
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
24:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
6

Yếu tố chung duy nhất là

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
09:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
7

Điều tương tự cũng có thể đạt được với phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
24:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
8

Điều này cũng sẽ dẫn đến:

int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp)  # [1, 2, 3, 4]
7

Sự khác biệt giữa các bộ python

Giả sử bạn có hai bộ A và B. Sự khác biệt giữa A và B (A - B) là tập hợp với tất cả các phần tử trong A nhưng không phải trong B. Do đó, (B - A) là tập hợp với tất cả các yếu tố trong B nhưng không phải ở A.

Để xác định sự khác biệt trong Python, chúng ta có thể sử dụng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
27 hoặc toán tử
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
28:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
0

Mã trên tính toán sự khác biệt giữa

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
29 và
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
30, do đó chúng tạo thành đầu ra của chúng tôi:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
7

Toán tử trừ (

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
28) cũng có thể được sử dụng để tìm sự khác biệt giữa hai bộ như hình dưới đây:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
2

Điều này sẽ dẫn đến đầu ra giống như sử dụng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
27:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
7

Sự khác biệt đối xứng của các tập A và B là tập hợp với tất cả các phần tử trong A và B ngoại trừ các phần tử phổ biến trong cả hai tập hợp. Nó được xác định bằng phương pháp

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
33 của Python hoặc toán tử
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
34:symmetric difference of sets A and B is the set with all elements that are in A and B except the elements that are common in both sets. It is determined using the Python's
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
33 method or the
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
34 operator:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
4

Điều này sẽ dẫn đến:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
5

Như chúng tôi đã nêu trước đây, sự khác biệt đối xứng cũng có thể được tìm thấy bằng cách sử dụng toán tử

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
34:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
6

Điều này sẽ mang lại cùng đầu ra như trước:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
5

So sánh các bộ python

Chúng ta có thể so sánh các bộ tùy thuộc vào các yếu tố họ có. Bằng cách này, chúng ta có thể biết liệu một tập hợp là một superset hay một tập hợp con của một bộ khác. Kết quả từ một so sánh như vậy sẽ là

{1, 2, 3, 4, 5, 6}
8 hoặc
{1, 2, 3, 4, 5, 6}
9.

Để kiểm tra xem SET A có phải là tập hợp con của SET B hay không, chúng ta có thể sử dụng thao tác sau:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
8

Để kiểm tra xem B có phải là siêu của A hay không, chúng ta có thể sử dụng thao tác sau:

>>> item_list = [1, 7, 7, 7, 11, 14 ,100, 100, 4, 4, 4]
>>> seen = set()
>>> item_list[:] = [item for item in item_list
                                       if item not in seen and not seen.add(item)]
>>> item_list
[1, 7, 11, 14, 100, 4]
9

Ví dụ:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
0

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
18 là tập hợp con của
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
19, mặt khác, là siêu của
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
18. Do đó, chạy mã ở trên sẽ mang lại:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
1

Tập hợp con và superset cũng có thể được kiểm tra bằng các phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
41 và
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
42 như hình dưới đây:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
2

Mang lại cùng một đầu ra trong ví dụ trên:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
1

Phương pháp đặt Python

Trong các phần sau, chúng tôi sẽ thảo luận về một số phương pháp được sử dụng phổ biến nhất được cung cấp bởi Python mà chúng tôi chưa thảo luận.

copy()

Phương thức này trả về một bản sao của bộ trong câu hỏi:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
4

Đầu ra cho thấy

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
43 là bản sao của bộ
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
44:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
5

isdisjoint()

Phương pháp này kiểm tra xem các bộ trong câu hỏi có giao điểm hay không. Nếu các bộ không có các mục phổ biến, phương thức này sẽ trả về

{1, 2, 3, 4, 5, 6}
8, nếu không nó sẽ trả về
{1, 2, 3, 4, 5, 6}
9:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
6

Hai bộ không có các mục phổ biến, do đó đầu ra là

{1, 2, 3, 4, 5, 6}
8:

ints_list = [1, 2, 3, 4, 3, 2]

ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2)  # [1, 2, 3, 4]
5

len()

Phương thức này trả về độ dài của một tập hợp, là tổng số phần tử trong tập hợp:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
8

Đầu ra cho thấy tập hợp có độ dài 4:

>>> set(item_list)
set([1, 100, 7, 11, 14, 4])
9

Python Frozen Set

Frozenset là một lớp với các đặc điểm của một tập hợp, nhưng một khi các yếu tố của nó đã được chỉ định, chúng không thể thay đổi. Tuples có thể được coi là danh sách bất biến, trong khi các bộ đông lạnh có thể được xem là các bộ bất biến.

LƯU Ý: Các bộ có thể thay đổi và không thể thay đổi, điều đó có nghĩa là chúng tôi không thể sử dụng chúng làm khóa từ điển. Các bộ đông lạnh có thể băm và chúng ta có thể sử dụng chúng làm khóa từ điển. Sets are mutable and unhashable, which means we cannot use them as dictionary keys. Frozen sets are hashable and we can use them as dictionary keys.

Để tạo các bộ đông lạnh, chúng tôi sử dụng phương thức

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
48. Chúng ta hãy tạo hai Frozenset,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
49 và
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
50:

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
0

Điều này sẽ dẫn đến:

num_set = {1, 2, 3, 4, 5, 6}
print(num_set)
1

Các frozensets hỗ trợ việc sử dụng các phương pháp đặt Python như

ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
51,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
27,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
33,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
54,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
41,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
24,
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
42 và
ints_list = [1, 2, 3, 4, 3, 2]

ints_list1 = list(set(ints_list))
print(ints_list1)  # [1, 2, 3, 4]
16.

Sự kết luận

Hướng dẫn cung cấp một giới thiệu chi tiết về các bộ trong Python. Định nghĩa toán học của các tập hợp giống như định nghĩa của các bộ trong Python. Một bộ chỉ đơn giản là một bộ sưu tập các mục chưa được đặt hàng. Bản thân bộ là có thể thay đổi, nhưng các yếu tố đã đặt là bất biến. Tuy nhiên, chúng ta có thể thêm và loại bỏ các phần tử khỏi một tập hợp tự do. Trong hầu hết các cấu trúc dữ liệu, các yếu tố được lập chỉ mục. Tuy nhiên, các yếu tố đặt không được lập chỉ mục. Điều này làm cho chúng tôi không thể thực hiện các hoạt động nhắm mục tiêu các yếu tố tập hợp cụ thể.

Bộ sưu tập Python nào không cho phép trùng lặp?

Các bộ là một bộ sưu tập không được đặt hàng và không được đặt.Chúng có thể thay đổi (có thể thay đổi) nhưng không cho phép các giá trị trùng lặp được giữ. Sets are a collection that is unordered and unindexed. They are mutable (changeable) but do not allow duplicate values to be held.

Điều nào cho phép trùng lặp trong Python?

Tuple là một bộ sưu tập được đặt hàng và không thể thay đổi.Cho phép các thành viên trùng lặp. is a collection which is ordered and unchangeable. Allows duplicate members.

Bộ sưu tập nào không cho phép trùng lặp?

Một bộ là một bộ sưu tập không thể chứa các yếu tố trùng lặp.Nó mô hình các tập hợp trừu tượng tập hợp toán học. is a Collection that cannot contain duplicate elements. It models the mathematical set abstraction.

Danh sách có cho phép trùng lặp trong Python không?

Trong bài viết này, chúng tôi sẽ tìm hiểu danh sách trong Python là gì.Vì một danh sách Python là một tập hợp nhiều yếu tố thậm chí chứa các bản sao, đôi khi cần phải làm cho danh sách trở nên độc đáo.