Python thiết lập sự khác biệt danh sách

Mọi thứ trong Python đều là đối tượng. Mỗi đối tượng có các thuộc tính và phương thức dữ liệu riêng được liên kết với nó. Để sử dụng một đối tượng hiệu quả và phù hợp, chúng ta nên biết cách tương tác với chúng

Danh sách, bộ dữ liệu và bộ là 3 loại đối tượng quan trọng. Điểm chung của chúng là chúng được sử dụng làm cấu trúc dữ liệu. Để tạo ra các sản phẩm mạnh mẽ và hoạt động tốt, người ta phải biết rất rõ cấu trúc dữ liệu của ngôn ngữ lập trình

Trong bài đăng này, chúng ta sẽ xem cách các cấu trúc này thu thập và lưu trữ dữ liệu cũng như các thao tác chúng ta có thể thực hiện với chúng. Chúng ta sẽ thấy cả sự khác biệt và tương đồng giữa chúng

Hãy bắt đầu bằng cách giải thích ngắn gọn những đồ vật này là gì. Sau đó chúng tôi sẽ làm các ví dụ để đi vào chi tiết cho từng cái

  • Danh sách là một cấu trúc dữ liệu tích hợp trong Python. Nó được biểu diễn dưới dạng tập hợp các điểm dữ liệu trong ngoặc vuông. Danh sách có thể được sử dụng để lưu trữ bất kỳ loại dữ liệu nào hoặc hỗn hợp các loại dữ liệu khác nhau. Danh sách có thể thay đổi, đó là một trong những lý do tại sao chúng thường được sử dụng
  • Tuple là tập hợp các giá trị được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc đơn. Không giống như danh sách, bộ dữ liệu là bất biến. Tính bất biến có thể được coi là đặc điểm nhận dạng của các bộ dữ liệu
  • Set là một tập hợp không có thứ tự của các đối tượng bất biến riêng biệt. Một tập hợp chứa các phần tử duy nhất. Mặc dù các tập hợp có thể thay đổi, nhưng các phần tử của các tập hợp phải là bất biến. Không có thứ tự liên kết với các phần tử của một tập hợp. Do đó, nó không hỗ trợ lập chỉ mục hoặc cắt như chúng ta làm với danh sách

List vs Tuple vs Set [hình ảnh của tác giả]

Bây giờ chúng ta có một sự hiểu biết cơ bản về những đối tượng này là gì. Các ví dụ sau sẽ trình bày cách chúng ta có thể tương tác với các đối tượng này

1. Danh sách vs Tập hợp

Chúng ta có thể tạo một danh sách hoặc tập hợp dựa trên các ký tự trong một chuỗi. Các chức năng để sử dụng là các chức năng danh sách và thiết lập

text = "Hello World!"print[list[text]]
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!']
print[set[text]]
{'H', 'W', 'o', ' ', 'l', 'r', '!', 'e', 'd'}

Sự khác biệt trong danh sách kết quả và thiết lập các đối tượng

  • Danh sách chứa tất cả các ký tự trong khi tập hợp chỉ chứa các ký tự duy nhất
  • Danh sách được sắp xếp dựa trên thứ tự của các ký tự trong chuỗi. Không có thứ tự liên kết với các mục trong bộ

2. Danh sách so với Tập hợp - lập chỉ mục

Trong ví dụ trước, chúng ta đã thấy rằng các tập hợp không có thứ tự. Do đó, chúng ta không thể thực hiện việc cắt hoặc lập chỉ mục trên các tập hợp như chúng ta làm với danh sách

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable

Việc cắt hoặc lập chỉ mục trên các tập hợp làm tăng TypeError vì đây là sự cố liên quan đến thuộc tính của loại đối tượng tập hợp

3. Danh sách so với Tuple

Sự khác biệt giữa danh sách và tuple là khả năng biến đổi. Không giống như danh sách, bộ dữ liệu là bất biến. Chẳng hạn, chúng ta có thể thêm các mục vào danh sách nhưng không thể làm điều đó với các bộ dữ liệu

list_a = [1,2,3,4]
list_a.append[5]
print[list_a]
[1,2,3,4,5]
tuple_a = [1,2,3,4]
tuple_a.append[5]
AttributeError: 'tuple' object has no attribute 'append'

Các chức năng thay đổi một bộ sưu tập [e. g. nối thêm, xóa, mở rộng, bật] không áp dụng cho bộ dữ liệu

4. Tuple - các phần tử có thể thay đổi

Tính bất biến có thể là đặc điểm dễ nhận biết nhất của các bộ dữ liệu. Chúng tôi không thể gán cho các mục riêng lẻ của một bộ dữ liệu

tuple_a = [3, 5, 'x', 5]
tuple_a[0] = 7 #error

Mặc dù các bộ dữ liệu là bất biến, nhưng chúng có thể chứa các phần tử có thể thay đổi như danh sách hoặc tập hợp

tuple_a = [[1,3], 'a', 'b', 8]
tuple_a[0][0] = 99
print[tuple_a]
[[99, 3], 'a', 'b', 8]

5. chức năng xóa

Hàm Del là viết tắt của từ delete nên dùng để xóa một mục khỏi bộ sưu tập. Nó lấy chỉ mục của mục cần xóa

Vì các bộ không có thứ tự nên chúng không có chỉ mục các mục trong đó. Do đó, chức năng del không thể được sử dụng trên một tập hợp

list_a = [1, 2, 3, 4]
del[list_a[0]]
print[list_a]
[2, 3, 4]

Ghi chú. Có hai cách để lập chỉ mục một danh sách

  • Từ đầu đến cuối. 0, 1, 2, 3
  • Từ cuối đến đầu. -1, -2, -3

6. Loại bỏ chức năng

Không giống như hàm del, hàm xóa có thể được sử dụng trên cả danh sách và tập hợp. Chúng tôi chuyển mục cần xóa thay vì chỉ mục của nó

list_a = ['a','b',3,6]
list_a.remove['a']
print[list_a]
['b', 3, 6]
set_a = {'a','b',3,6}
set_a.remove['a']
print[set_a]
{3, 6, 'b'}

7. hủy bỏ chức năng

Loại bỏ cũng có thể được sử dụng để xóa một mục khỏi một bộ. Danh sách không có thuộc tính loại bỏ mặc dù

Sự khác biệt giữa "xóa" và "loại bỏ" được quan sát thấy khi chúng tôi cố gắng xóa một mục không có trong tập hợp. Loại bỏ sẽ gây ra lỗi nhưng không có gì xảy ra với loại bỏ

#remove
a = {1,2,3}
a.remove[5]
KeyError: 5
#discard
a = {1,2,3}
a.discard[5]
print[a]
{1,2,3}

8. chức năng bật lên

Chức năng pop có thể được sử dụng trên cả danh sách và bộ. Tuy nhiên, nó hoạt động khác nhau trên danh sách và tập hợp

Theo mặc định, hàm pop xóa mục cuối cùng khỏi danh sách và trả về mục đó. Vì vậy, chúng ta có thể gán nó cho một biến. Chúng ta có thể chuyển một chỉ mục cho hàm pop loại bỏ một phần tử tại một chỉ mục cụ thể. Chẳng hạn, pop[-2] sẽ xóa mục thứ hai từ cuối

________số 8

Khi được sử dụng trên một tập hợp, hàm pop sẽ loại bỏ một mục tùy ý vì không có chỉ mục hoặc thứ tự trong một tập hợp

set_a =  {'a','b',3, 6, 4}
item2 = set_a.pop[]
print[set_a]
{4, 6, 'a', 'b'}
print[item2]
3

9. Danh sách hoặc Set hoặc Tuple

Các đối tượng bộ sưu tập này có thể được chuyển đổi từ cái này sang cái khác. Các chức năng để sử dụng, như tên gợi ý, liệt kê, tuple và đặt

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
0

10. Thêm các mặt hàng mới

Vì các bộ dữ liệu là bất biến, nên chúng ta chỉ có thể thêm các mục mới vào danh sách hoặc tập hợp. Chúng tôi có nhiều lựa chọn thay thế hơn khi thay đổi danh sách do được sắp xếp hoặc lập chỉ mục

Chẳng hạn, phương thức append thêm một mục vào cuối danh sách. Vì các tập hợp không có khái niệm về kết thúc hoặc bắt đầu nên chúng ta không thể sử dụng phương thức chắp thêm. Đối với các bộ, phương thức thêm được sử dụng để thêm các mục mới

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
1

11. Chèn một mục vào danh sách

Chức năng chèn cũng được sử dụng để thêm một phần tử vào danh sách. Tuy nhiên, nó cho phép chỉ định chỉ mục của phần tử mới. Chẳng hạn, chúng ta có thể thêm một phần tử mới vào đầu danh sách [index=0]

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
2

Vì nó yêu cầu một chỉ mục, chúng tôi không thể sử dụng chức năng chèn trên các tập hợp

12. Kết hợp hai đối tượng

Sẽ có trường hợp chúng ta cần thêm các mục cùng loại với nhau. Chúng tôi có nhiều tùy chọn để kết hợp các đối tượng của danh sách, bộ dữ liệu và bộ

Toán tử “+” có thể được sử dụng để thêm danh sách hoặc bộ nhưng không phải bộ

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
3

Chúng ta có thể sử dụng toán tử hợp để kết hợp hai bộ. Các phần tử trùng lặp sẽ bị xóa

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
4

Ghi chú. Ký hiệu tập hợp tương tự như ký hiệu từ điển trong Python. Sự khác biệt là khi tạo từ điển, chúng tôi đặt các cặp khóa-giá trị bên trong dấu ngoặc nhọn thay vì các mục đơn lẻ

Chúng ta cần ghi nhớ điều đó khi tạo một từ điển trống. Nếu chúng ta chỉ sử dụng dấu ngoặc nhọn mà không có gì bên trong, Python sẽ nghĩ đó là từ điển rỗng. Chúng ta có thể sử dụng hàm set để tạo một tập rỗng

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
5

13. Sắp xếp

Chúng ta chỉ có thể nói về việc sắp xếp nếu có thứ tự. Do đó, sắp xếp áp dụng cho danh sách và bộ dữ liệu. Không thể sắp xếp các bộ vì không có thứ tự

Chức năng sắp xếp sửa đổi đối tượng mà nó được áp dụng. Vì vậy, chúng tôi chỉ có thể sử dụng nó trên danh sách. Tuples là bất biến vì vậy chúng tôi không thể sắp xếp chúng

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
6

Tuy nhiên, chúng ta có thể sử dụng chức năng sắp xếp trên bộ dữ liệu. Nó tạo ra một danh sách được sắp xếp của bất kỳ lần lặp nào. Vì vậy, chúng ta có thể sử dụng nó để tạo một danh sách được sắp xếp dựa trên một tuple

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
7
  • loại[]. sắp xếp đối tượng nhưng không trả lại bất cứ thứ gì
  • sắp xếp[]. trả về một danh sách các mục được sắp xếp trong một lần lặp nhưng không sửa đổi đối tượng ban đầu

14. Đang cập nhật một bộ

Phương pháp cập nhật có thể được sử dụng để cập nhật một tập hợp theo các mục trong các lần lặp khác. Do tính chất của bộ, các mục trùng lặp sẽ bị xóa khi cập nhật

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
8

15. Len và đếm

Hàm len trả về độ dài [i. e. số mục] của một bộ sưu tập. Nó hoạt động trên danh sách, bộ dữ liệu và bộ

Hàm đếm có thể được sử dụng để đếm số lần xuất hiện của một phần tử cụ thể. Nó chỉ được sử dụng với danh sách và bộ dữ liệu. Vì các bộ không chứa bất kỳ mục trùng lặp nào nên số lượng là 1 cho tất cả các mục

text = "Hello World!"list_a = list[text]
print[list_a[:2]]
['H','e']
set_a = set[text]
print[set_a[:2]]
TypeError: 'set' object is not subscriptable
9

Phần kết luận

Chúng tôi đã đề cập đến sự khác biệt và tương đồng giữa 3 cấu trúc dữ liệu thiết yếu trong Python. Tôi đã cố gắng thiết kế các ví dụ để làm nổi bật những điểm quan trọng cần lưu ý khi tương tác với các đối tượng này

Có nhiều phương thức và thao tác có thể hoạt động trên các đối tượng này. Chẳng hạn, khả năng hiểu danh sách khá hữu ích trong phân tích và thao tác dữ liệu

Sự hiểu biết toàn diện về cấu trúc dữ liệu là rất quan trọng vì cấu trúc của chúng là những phần cơ bản của bất kỳ ngôn ngữ lập trình nào. Chúng cũng là những yếu tố chính trong việc thiết kế các thuật toán

Sự khác biệt giữa tập hợp và danh sách là gì?

Danh sách là một chuỗi các phần tử được sắp xếp theo thứ tự trong khi Set là một danh sách riêng biệt gồm các phần tử không được sắp xếp .

Cái nào nhanh hơn được đặt hoặc liệt kê trong Python?

Lưu ý rằng các bộ không nhanh hơn các danh sách nói chung -- kiểm tra tư cách thành viên nhanh hơn đối với các bộ và việc xóa một phần tử cũng vậy. Miễn là bạn không cần những thao tác này, danh sách thường nhanh hơn

Tại sao sử dụng một bộ thay vì một danh sách?

Sự khác biệt chính giữa Danh sách và Tập hợp là Danh sách cho phép trùng lặp trong khi Set không cho phép trùng lặp .

Khi nào bạn sẽ sử dụng một tập hợp trên một danh sách trong Python?

3 lý do để sử dụng Sets over Lists. Hiểu khi nào và ở đâu mỗi vùng chứa phù hợp. .
Thứ tự không quan trọng. Không giống như danh sách, bộ không lưu trữ dữ liệu theo thứ tự. .
Bản sao không liên quan. Theo định nghĩa, các bộ không thể chứa các bản sao. .
Tốc độ xử lý quan trọng

Chủ Đề