Hướng dẫn python remove tuple from set - python xóa tuple khỏi bộ

Tôi có một bộ

Show

Ex:

{(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

Nhưng khi một cặp tuple đã ở trong một bộ tuple khác, tôi muốn loại bỏ nó.

Ex:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
9 là ở
my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
0,
my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
1 là trong
my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
2 và
my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
3 là trong
my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
4

Vì vậy, bộ trở thành:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}

Thứ tự của các yếu tố trong tuple không quan trọng và bạn nên luôn luôn giữ chuỗi dài nhất.

Làm thế nào để bạn làm điều đó?

Đã hỏi ngày 6 tháng 3 năm 2017 lúc 13:37Mar 6, 2017 at 13:37

Hướng dẫn python remove tuple from set - python xóa tuple khỏi bộ

THHLEVTHHOLLEVThhollev

731 Huy hiệu vàng1 Huy hiệu bạc8 Huy hiệu đồng1 gold badge1 silver badge8 bronze badges

10

Đây không phải là một giải pháp rất hiệu quả (o (n^2); đi qua tập hợp hai lần) nhưng tôi không chắc chúng ta có thể làm tốt hơn ở đây.

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}

Lưu ý rằng nó chuyển đổi các bộ dữ liệu bên trong thành các tập hợp và điều đó đặt ra một số hạn chế đối với nó (không có các phần tử trùng lặp trên các bộ dữ liệu)

Đã trả lời ngày 6 tháng 3 năm 2017 lúc 13:51Mar 6, 2017 at 13:51

Hướng dẫn python remove tuple from set - python xóa tuple khỏi bộ

Ma0Ma0Ma0

14.8K3 Huy hiệu vàng33 Huy hiệu bạc64 Huy hiệu đồng3 gold badges33 silver badges64 bronze badges

Chúng ta có thể thực hiện bài kiểm tra hiệu quả hơn bằng cách chuyển đổi các bộ dữ liệu thành các tập hợp, và sau đó chuyển đổi các bộ trở lại các bộ dữ liệu. Tôi sử dụng Frozensets vì chúng bất biến, như bộ dữ liệu.

src = {
    (2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), 
    (1, 6), (7, 8), (1, 6, 8), (3, 5)
}

temp = [frozenset(u) for u in src]
temp.sort(key=len, reverse=True)

dest = []
for t in temp:
    if not any(t <= u for u in dest):
        dest.append(t)

dest = {tuple(sorted(u)) for u in dest}
print(dest)

đầu ra

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}

Trước tiên, chúng tôi chuyển đổi các bộ dữ liệu thành các bộ và lưu trữ chúng trong một danh sách, sắp xếp các mục danh sách theo độ dài, từ dài nhất đến ngắn nhất. Sau đó, chúng tôi chỉ thêm từng mục danh sách vào danh sách

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
5 nếu nó không phải là tập hợp con của một mục hiện có. Sau đó, chúng tôi sử dụng một thiết lập hiểu để chuyển đổi các bộ trở lại thành các bộ dữ liệu được đặt hàng.

Đã trả lời ngày 6 tháng 3 năm 2017 lúc 14:02Mar 6, 2017 at 14:02

Hướng dẫn python remove tuple from set - python xóa tuple khỏi bộ

PM 2ringPM 2ringPM 2Ring

53.1K5 Huy hiệu vàng79 Huy hiệu bạc170 Huy hiệu đồng5 gold badges79 silver badges170 bronze badges

Đây

from pprint import pprint

S = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

V = {frozenset(s) for s in S}

W = {x for x in V if not any(x <= y for y in V - {x})}

pprint(W)

Đầu ra

set([frozenset([4, 8]),
     frozenset([3, 5]),
     frozenset([2, 3, 7, 8]),
     frozenset([4, 6]),
     frozenset([1, 6, 8]),
     frozenset([1, 2, 3])])

Đã trả lời ngày 6 tháng 3 năm 2017 lúc 14:06Mar 6, 2017 at 14:06

Hướng dẫn python remove tuple from set - python xóa tuple khỏi bộ

Elmex80sElmex80sElmex80s

3,3981 Huy hiệu vàng14 Huy hiệu bạc23 Huy hiệu đồng1 gold badge14 silver badges23 bronze badges

0

Tuple giải nén trong Python

Làm thế nào để đếm sự xuất hiện của một yếu tố cụ thể trong một tuple python?


1. Sử dụng phương pháp my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)} remove = set() for i in my_set: for j in my_set: if i != j and all(f not in remove for f in (i, j)): if all(x in j for x in i): remove.add(i) res = my_set - remove print(res) # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)} 6

Phương pháp

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
6 có thể được sử dụng với danh sách, không phải bộ dữ liệu. Ngoài ra, chỉ cần một đối số cần được cung cấp cho phương pháp này tại một thời điểm. Sử dụng phương pháp này, chúng ta có thể loại bỏ hoàn toàn một tuple khỏi danh sách tuple. Chúng ta không thể sử dụng chức năng này để loại bỏ một phần tử cụ thể từ bên trong một tuple.

Thời gian cho một ví dụ:

my_tuple_list = [(1,2), (3.78, 9.56), ("StudyTonight", "Study")]
my_tuple_list.pop(2)
print(my_tuple_list)

Output:

[(1, 2), (3.78, 9.56)]

2. Sử dụng từ khóa my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)} remove = set() for i in my_set: for j in my_set: if i != j and all(f not in remove for f in (i, j)): if all(x in j for x in i): remove.add(i) res = my_set - remove print(res) # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)} 8

Từ khóa

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
8 có thể được sử dụng cùng với danh sách tuple và chuyển chỉ mục của phần tử cho nó. Phương pháp này cũng xóa toàn bộ tuple khỏi danh sách.

Thời gian cho một ví dụ:

my_tuple_list = [(1,2), (3.78, 9.56), ("StudyTonight", "Study")]
del my_tuple_list[0]
print(my_tuple_list)

Output:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
0

2. Sử dụng từ khóa my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)} remove = set() for i in my_set: for j in my_set: if i != j and all(f not in remove for f in (i, j)): if all(x in j for x in i): remove.add(i) res = my_set - remove print(res) # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)} 8

Từ khóa

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
8 có thể được sử dụng cùng với danh sách tuple và chuyển chỉ mục của phần tử cho nó. Phương pháp này cũng xóa toàn bộ tuple khỏi danh sách.

Thời gian cho một ví dụ:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
1

Output:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
2

2. Sử dụng từ khóa my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)} remove = set() for i in my_set: for j in my_set: if i != j and all(f not in remove for f in (i, j)): if all(x in j for x in i): remove.add(i) res = my_set - remove print(res) # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)} 8

Từ khóa

my_set = {(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}

remove = set()
for i in my_set:
    for j in my_set:
        if i != j and all(f not in remove for f in (i, j)):
            if all(x in j for x in i):
                remove.add(i)

res = my_set - remove
print(res)  # {(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
8 có thể được sử dụng cùng với danh sách tuple và chuyển chỉ mục của phần tử cho nó. Phương pháp này cũng xóa toàn bộ tuple khỏi danh sách.

Thời gian cho một ví dụ:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
3

Output:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
4

5. Sử dụng danh sách hiểu:

Một danh sách hiểu đơn giản có thể được sử dụng để loại bỏ một phần tử cụ thể khỏi danh sách tuple bằng cách chỉ định một điều kiện bên trong nó.

Thời gian cho một ví dụ:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
5

Output:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
6

Ví dụ mã trên sẽ loại bỏ phần tử trong Tuple với giá trị 2.


6. Sử dụng phương pháp src = { (2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5) } temp = [frozenset(u) for u in src] temp.sort(key=len, reverse=True) dest = [] for t in temp: if not any(t <= u for u in dest): dest.append(t) dest = {tuple(sorted(u)) for u in dest} print(dest) 3

Phương pháp lọc đã được giải thích chi tiết ở đây. Nó có thể được sử dụng để lọc ra các yếu tố cụ thể và hiển thị các yếu tố vẫn còn trong danh sách tuple.

Thời gian cho một ví dụ:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
7

Output:

{(2, 3, 7, 8), (4, 6), (4, 8), (1, 2, 3), (1, 6, 8), (3, 5)}
0

Conclusion:

Trong bài đăng này, chúng tôi hiểu làm thế nào một yếu tố cụ thể có thể được xóa khỏi danh sách tuple. Hãy cho chúng tôi biết cách tiếp cận của bạn để đạt được yêu cầu này.

Bạn cũng có thể thích:

  • Cách đọc CSV để liệt kê trong Python
  • Tuple giải nén trong Python
  • Làm thế nào để đếm sự xuất hiện của một yếu tố cụ thể trong một tuple python?
  • Python | Chuyển đổi một danh sách thành một tuple

Bạn có thể loại bỏ các mục khỏi Set Python không?

Để loại bỏ một mục trong một tập hợp, sử dụng phương thức Remove () hoặc loại bỏ ().use the remove() , or the discard() method.

Bạn có thể sử dụng Remove with tuple không?

Lưu ý: Bạn không thể loại bỏ các mục trong một tuple.You cannot remove items in a tuple.

Làm cách nào để loại bỏ nhiều phần tử khỏi một bộ trong Python?

Đưa ra một tập hợp, nhiệm vụ là viết một chương trình Python xóa nhiều phần tử khỏi tập hợp.Ví dụ: Đầu vào: test_set = {6, 4, 2, 7, 9}, rem_ele = [2, 4, 8] Đầu ra: {9, 6, 7} Giải thích: 2, 4 bị xóa khỏi tập hợp.Input : test_set = {6, 4, 2, 7, 9}, rem_ele = [2, 4, 8] Output : {9, 6, 7} Explanation : 2, 4 are removed from set.

Làm thế nào để bạn bật một tuple?

Theo định nghĩa, đối tượng tuple là bất biến.Do đó không thể loại bỏ phần tử khỏi nó.Tuy nhiên, một cách giải quyết sẽ được chuyển đổi tuple thành một danh sách, xóa phần tử mong muốn khỏi danh sách và chuyển đổi nó trở lại thành một tuple.convert tuple to a list, remove desired element from list and convert it back to a tuple.