Chúng ta có thể chuyển đổi tuple thành set trong python không?

Vấn đề là bạn không xây dựng bộ mà có vẻ như bạn nghĩ rằng bạn đang xây dựng và kết quả là nó không thể được sử dụng theo cách bạn muốn sử dụng.

mã của bạn làm điều này

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  a = tuple[tuple[p] for p in self.acceptors]      
  waitfor.add[a]
  print "waitfor",waitfor

Vì vậy, đối với mỗi bộ chấp nhận, bạn không thêm bộ chấp nhận đó vào tập hợp, bạn đang thêm bộ tất cả các bộ chấp nhận vào tập hợp. Bạn làm đi làm lại điều này, nhưng vì nó là một tập hợp và bạn đang thêm đi thêm lại cùng một bộ, nên cuối cùng bạn chỉ có một phần tử, đó là bộ lớn của tất cả các bộ chấp nhận. Đó chính xác là những gì bạn thấy—hãy lưu ý các dấu ngoặc đơn bổ sung trong kết quả của bạn và thực tế là nếu bạn in ra len[waitfor] thì đó chỉ là 1

Và điều này có nghĩa là không có giá trị nào trong số các giá trị của p mà sau này bạn kiểm tra bằng p in waitfor sẽ có trong

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  waitfor.add[tuple[a]]
print "waitfor",waitfor
0, bởi vì thứ duy nhất thực sự có trong đó là bộ dữ liệu khổng lồ chứa tất cả các cặp đó, chứ không phải bất kỳ cặp nào

Nó giống như thêm “Bang California” vào danh bạ hàng triệu lần, thay vì thêm hàng triệu người dân California, rồi hỏi “Jerry Brown có trong danh bạ không?” . Không có lỗi trong cách bạn tìm kiếm danh bạ; . Vì vậy, đó là phần bạn cần sửa

Vì vậy, những gì bạn muốn là

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  waitfor.add[tuple[a]]
print "waitfor",waitfor

Hoặc, đơn giản hơn, một lớp lót này

print “in scout”
waitfor = set[tuple[p] for p in self.acceptors]
print “waitfor”, waitfor

Hoặc, nếu phiên bản Python của bạn đủ mới để hiểu tập hợp [tôi nghĩ điều đó có nghĩa là 2. 7, nhưng đừng trích dẫn tôi về điều đó], nó dễ đọc hơn một chút

Bộ dữ liệu không thể thay đổi, nghĩa là bạn không thể thay đổi, thêm hoặc xóa các mục sau khi bộ dữ liệu được tạo

Nhưng có một số cách giải quyết

Thay đổi giá trị Tuple

Khi một tuple được tạo, bạn không thể thay đổi giá trị của nó. Các bộ dữ liệu không thể thay đổi hoặc không thay đổi vì nó còn được gọi là

Nhưng có một cách giải quyết. Bạn có thể chuyển đổi bộ dữ liệu thành danh sách, thay đổi danh sách và chuyển đổi danh sách trở lại thành bộ dữ liệu

Thí dụ

Chuyển đổi bộ dữ liệu thành danh sách để có thể thay đổi nó

x = ["táo", "chuối", "anh đào"]
y = list[x]
y[1] = "
x = tuple[y]

in[x]

Tự mình thử »

Thêm các mục

Vì các bộ dữ liệu là bất biến nên chúng không có phương thức

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  waitfor.add[tuple[a]]
print "waitfor",waitfor
1 tích hợp, nhưng có nhiều cách khác để thêm các mục vào bộ dữ liệu

1. Chuyển thành danh sách. Giống như cách giải quyết thay đổi một bộ, bạn có thể chuyển đổi nó thành một danh sách, thêm [các] mục của bạn và chuyển đổi lại thành một bộ

Thí dụ

Chuyển đổi bộ dữ liệu thành danh sách, thêm "màu cam" và chuyển đổi lại thành bộ dữ liệu

thistuple = ["apple", "chuối", "anh đào"]
y = list[thistuple]
y. append["orange"]
thistuple = tuple[y]

Tự mình thử »

2. Thêm tuple vào tuple. Bạn được phép thêm các bộ vào các bộ, vì vậy nếu bạn muốn thêm một mục, [hoặc nhiều mục], hãy tạo một bộ mới với [các] mục đó và thêm nó vào bộ hiện có

Thí dụ

Tạo một bộ dữ liệu mới với giá trị "màu cam" và thêm bộ dữ liệu đó

thistuple = ["táo", "chuối", "anh đào"]
y = ["cam",]
thistuple += y

in [cây kế]

Tự mình thử »

Ghi chú. Khi tạo một bộ chỉ có một mục, hãy nhớ thêm dấu phẩy sau mục, nếu không nó sẽ không được xác định là một bộ

Xóa mục

Ghi chú. Bạn không thể xóa các mục trong một Tuple

Các bộ không thể thay đổi, vì vậy bạn không thể xóa các mục khỏi nó, nhưng bạn có thể sử dụng cách giải quyết tương tự như chúng tôi đã sử dụng để thay đổi và thêm các mục của bộ

Khi một tuple được tạo, bạn không thể thay đổi giá trị của nó. Các bộ dữ liệu không thể thay đổi hoặc không thay đổi vì nó còn được gọi là

Nhưng có một cách giải quyết. Bạn có thể chuyển đổi bộ dữ liệu thành danh sách, thay đổi danh sách và chuyển đổi danh sách trở lại thành bộ dữ liệu

Thí dụ

Chuyển đổi bộ dữ liệu thành danh sách để có thể thay đổi nó

x = ["táo", "chuối", "anh đào"]
y = list[x]
y[1] = "
x = tuple[y]

in[x]

Tự mình thử »


Trong hướng dẫn này, chúng ta sẽ xem xét cách chuyển đổi một bộ thành một tập hợp trong Python với sự trợ giúp của một số ví dụ

Tại sao chuyển đổi một tuple thành một tập hợp?

Tuple là một cấu trúc dữ liệu tích hợp trong Python được sử dụng để lưu trữ một bộ sưu tập các mục được sắp xếp theo thứ tự. Mặt khác, một tập hợp được sử dụng để lưu trữ một tập hợp các đối tượng nhưng nó không duy trì bất kỳ trật tự nào. Ngoài ra, một bộ chỉ lưu trữ các mặt hàng duy nhất

Sau đây là một số trường hợp sử dụng phổ biến khi bạn muốn chuyển đổi một bộ thành một tập hợp

  • Để sử dụng bộ như một tập hợp và thực hiện một số thao tác tập hợp
  • Để loại bỏ các bản sao khỏi Tuple

Lưu ý rằng bạn sẽ mất thứ tự vốn có trong bộ sau khi chuyển đổi thành bộ [vì bộ là tập hợp không có thứ tự]

Làm cách nào để chuyển đổi một tuple thành một tập hợp?

Bạn có thể sử dụng hàm

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  waitfor.add[tuple[a]]
print "waitfor",waitfor
2 tích hợp sẵn của Python để chuyển đổi một bộ thành một tập hợp. Truyền bộ dữ liệu làm đối số cho hàm. Nó trả về một tập hợp kết quả từ các phần tử của bộ dữ liệu

Hãy xem một ví dụ

# create a tuple
t = [2, 5, 1, 3]
# create set from tuple
s = set[t]
# display the set and its type
print[s]
print[type[s]]

đầu ra

{1, 2, 3, 5}

Ở đây chúng tôi tạo một tập hợp từ bộ dữ liệu

waitfor = set[]
print "in scout"
for a in self.acceptors:
  print "acceptor",a
  waitfor.add[tuple[a]]
print "waitfor",waitfor
3 ở trên. Bạn có thể thấy rằng tập hợp chứa tất cả các phần tử từ bộ. Ngoài ra, lưu ý rằng thứ tự vốn có của các phần tử trong bộ dữ liệu không được giữ nguyên trong tập hợp

Điều gì xảy ra nếu bộ dữ liệu của bạn có các phần tử trùng lặp?

# create a tuple
t = [2, 5, 5, 1, 3]
# create set from tuple
s = set[t]
# display the set and its type
print[s]
print[type[s]]

đầu ra

{1, 2, 3, 5}

Tập kết quả chỉ chứa các phần tử riêng biệt từ bộ

Sử dụng các bộ để loại bỏ các phần tử trùng lặp trong một bộ hoặc danh sách là trường hợp sử dụng rất phổ biến trong Python

Bạn cũng có thể quan tâm đến -

  • Chuyển Tuple thành Chuỗi trong Python
  • Chuyển Tuple thành Chuỗi trong Python
  • Python – Chuyển Tuple thành Chuỗi


Đăng ký nhận bản tin của chúng tôi để biết thêm thông tin và hướng dẫn.
Chúng tôi không gửi thư rác và bạn có thể chọn không tham gia bất kỳ lúc nào.


Tác giả

  • Piyush

    Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trước đây, anh ấy từng là Nhà khoa học dữ liệu cho ZS và có bằng kỹ sư của IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trong các dự án phụ

    Tại sao tôi không thể chuyển đổi một bộ để đặt Python?

    Sau khi bộ được tạo, bạn không thể thay đổi giá trị của bộ đó . Các bộ dữ liệu không thể thay đổi hoặc không thay đổi vì nó còn được gọi là. Nhưng có một cách giải quyết. Bạn có thể chuyển đổi bộ dữ liệu thành danh sách, thay đổi danh sách và chuyển đổi danh sách trở lại thành bộ dữ liệu.

    Bạn có thể đặt một bộ trong một bộ Python không?

    Bạn cũng có thể thêm các bộ vào một bộ . Và giống như các phần tử thông thường, bạn chỉ có thể thêm cùng một bộ một lần.

    Tuple có giống như set trong Python không?

    Các bộ đề cập đến các bộ sưu tập các đối tượng khác nhau của Python được phân tách bằng dấu phẩy giữa chúng. Các tập hợp là tập hợp các loại dữ liệu không có thứ tự . Đây là những phần tử có thể thay đổi, có thể lặp lại và không bao gồm bất kỳ phần tử trùng lặp nào.

    Bộ dữ liệu có thể được chuyển đổi thành danh sách trong Python không?

    Phương thức danh sách Python list[] lấy các loại trình tự và chuyển đổi chúng thành danh sách . Điều này được sử dụng để chuyển đổi một bộ dữ liệu đã cho thành danh sách. Lưu ý - Bộ dữ liệu rất giống với danh sách chỉ khác là giá trị phần tử của bộ dữ liệu không thể thay đổi và phần tử bộ dữ liệu được đặt giữa dấu ngoặc đơn thay vì dấu ngoặc vuông.

Chủ Đề