So sánh hai danh sách các bộ dữ liệu python

Cấu trúc dữ liệu trong khoa học máy tính là các định dạng chuyên dụng để lưu trữ dữ liệu một cách hiệu quả và có tổ chức. Nó cũng cho phép dễ dàng truy cập và sửa đổi dữ liệu

Cấu trúc dữ liệu không phụ thuộc vào ngôn ngữ, nhưng hôm nay chúng ta sẽ thảo luận về hai trong số các cấu trúc dữ liệu ngầm định được hỗ trợ bởi Python – List và Tuples

Hãy nhớ cách bạn sử dụng danh sách việc cần làm được tổ chức tốt để giữ cho cuộc sống của bạn rõ ràng và ít phức tạp hơn. Các cấu trúc dữ liệu này hoạt động trên cùng một nguyên tắc. Họ hỗ trợ truy cập tuần tự, tôi. e. , Người dùng chỉ có thể truy cập các giá trị mà chúng chứa theo một thứ tự cụ thể


Hãy đi sâu hơn vào định nghĩa chính của hai cấu trúc và sau đó chúng ta sẽ thảo luận về các đặc điểm nổi bật của chúng và phân tích chúng khác nhau như thế nào

Danh sách

Một danh sách trong lập trình Python là một trong những cấu trúc dữ liệu phổ biến và được sử dụng nhiều nhất.  

Không giống như các ngôn ngữ lập trình khác như C++ hoặc Java có một mảng tĩnh lưu trữ các giá trị cùng loại, Python có một mảng động và linh hoạt hơn được gọi là “danh sách”, tự động tăng hoặc giảm tỷ lệ khi thêm và xóa các phần tử

Các lập trình viên sử dụng cấu trúc dữ liệu linh hoạt này để lưu trữ dữ liệu không đồng nhất theo trình tự. Dữ liệu được phân tách bằng dấu phẩy [,] và được lưu trữ trong dấu ngoặc vuông  [ ]. Nó là một công cụ mạnh mẽ được nhúng với tính năng lập chỉ mục và nhiều tính năng khác giúp dễ dàng truy cập, sửa đổi và xóa các phần tử

Ví dụ.  

Sample_List = [12, -1. 56, 5. 12, [-8, 23, ”a”, ”b”], ”CodingNinjas”]

Tuple

Bộ dữ liệu là một cấu trúc dữ liệu được sử dụng nhiều nhất khác trong Python và nó cũng hỗ trợ đặc biệt lưu trữ nhiều phần tử, tôi. e. , dữ liệu không đồng nhất trong một biến duy nhất, giống như Danh sách

Một bộ được tạo bằng cách đặt tất cả các phần tử bên trong dấu ngoặc đơn [], được phân tách bằng dấu phẩy. Dấu ngoặc đơn là tùy chọn. Tuy nhiên, đó là một thực hành tốt để sử dụng chúng

Ví dụ

Sample_Tuple = [-3, -1. 56, 27, [-8, 23,”a”,”b”],”CodingNinjas”]

Cho đến bây giờ, chúng tôi chỉ có một cái nhìn tổng quan về các nguyên tắc cơ bản của danh sách và bộ dữ liệu. Hãy đi sâu hơn vào các tính năng nổi bật của từng loại và so sánh các thông số mà chúng giống và khác nhau

Hãy bắt đầu với những điểm tương đồng trước

Điểm tương đồng trong Tuple vs Danh sách

Các loại phần tử

  • Danh sách hoặc Tuple không nhất thiết phải luôn đồng nhất;
  • Các đối tượng được lưu trữ trong cả hai có thể thuộc bất kỳ loại nào như int, char, float, string, bao gồm cả loại nothing xác định Không có từ khóa
  • Chúng cũng có thể chứa các giá trị trùng lặp
  • Danh sách có thể lưu trữ bộ dữ liệu và tương tự như vậy, bộ dữ liệu có thể lưu trữ danh sách.  
  • Trong các bộ dữ liệu lồng nhau, một bộ dữ liệu có thể giữ nhiều bộ dữ liệu hơn. Và trong danh sách lồng nhau, một danh sách có thể có nhiều danh sách hơn
  • Ví dụ

Có thứ tự hoặc không có thứ tự

  • Danh sách và Bộ dữ liệu đều là cấu trúc dữ liệu có thứ tự, có nghĩa là nếu chúng ta tạo bất kỳ cấu trúc dữ liệu nào trong số này, hãy in ra kết quả. Kết quả sẽ theo cùng thứ tự mà chúng tôi đã nhập ban đầu.  
  • Dưới đây, mã Python hiển thị các tính năng được sắp xếp theo thứ tự của Danh sách và Tuple
#LIST
fruits_list=["apple","banana","mango","grapes"]
print["Fruit List is: ",fruits_list]
#TUPLE
colour_tuple=["red","blue","green","yellow"]
print["Colour Tuple is: ",colour_tuple]

Output:
Fruit List is:  ['apple', 'banana', 'mango', 'grapes']
Colour Tuple is:  ['red', 'blue', 'green', 'yellow']
  • Bạn có thể quan sát từ đầu ra ở trên rằng cả danh sách và bộ dữ liệu đều duy trì thứ tự đầu vào của chúng.  

Dễ dàng truy cập các yếu tố

  • Python hỗ trợ các ký hiệu Lập chỉ mục và Cắt lát trong các cấu trúc dữ liệu tuần tự như danh sách và bộ dữ liệu để dễ dàng truy cập các phần tử
  • Lập chỉ mục cho phép truy cập và sửa đổi một ô, sử dụng dấu ngoặc vuông [ ] và vị trí của phần tử mong muốn
  • Python sử dụng lập chỉ mục dựa trên số không. Điều đó có nghĩa là phần tử đầu tiên có chỉ số là 0;
  • Nó cũng hỗ trợ lập chỉ mục tiêu cực. Vì vậy, thay vì sử dụng các chỉ số từ 0 trở lên, chúng ta có thể sử dụng các chỉ số từ -1 trở xuống
  • Từ bên dưới, Mã Python. Hãy xem nó hoạt động như thế nào.  
#INDEXING IN  LIST
fruits_list = ["apple", "banana", "mango", "grapes"]
print["fruits_list output: "]
print[fruits_list[0]] #shows 0-based indexing
print[fruits_list[-2]] #negative indexing
print[]

#INDEXING IN TUPLE
colour_tuple = ["red", "blue", "green", "yellow"]
print["colour_tuple output: "]
print[colour_tuple[1]]
print[colour_tuple[-1]]

Output:
fruits_list output: 
apple
mango

colour_tuple output: 
blue
yellow
  • Lập chỉ mục hoạt động trên một phần tử hoặc ô. Ngược lại, Cắt lát hoạt động trên nhiều ô cùng một lúc
  • Cắt lát trích xuất một phần của danh sách hoặc bộ dữ liệu. Giả sử L là một danh sách, thì L[m. n] trả về một phần của L.  
    • Nó bắt đầu từ chỉ số thứ m và đi lên đến n-1, i. e. , không bao gồm chỉ số thứ n
    • Việc cắt lát cũng có thể được thực hiện bằng cách sử dụng chỉ mục tiêu cực
  • Mã Python bên dưới hiển thị Ký hiệu cắt trong Danh sách và Tuple

#INDEXING IN  LIST
fruits_list = ["apple", "banana", "mango", "grapes"]
print["fruits_list output: "]
print[fruits_list[0 : 2]] #shows 0-based slicing
print[fruits_list[-3 : -1]] #slicing using negative index
print[]

#INDEXING IN TUPLE
colour_tuple = ["red", "blue", "green", "yellow"]
print["colour_tuple output: "]
print[colour_tuple[1 : ]] #This will slice till the last index
print[colour_tuple[-4 : -2]]


Output:
fruits_list output: 
['apple', 'banana']
['banana', 'mango']

colour_tuple output: 
['blue', 'green', 'yellow']
['red', 'blue']

Sau khi xem xét những điểm tương đồng giữa List và Tuple cho đến nay, bây giờ chúng ta sẽ làm sáng tỏ các thông số khiến Tuple và List khác nhau

Sự khác biệt trong Tuple so với Danh sách

Sự khác biệt về cú pháp

Chúng tôi đã thảo luận điều này trong định nghĩa chính của tuple so với danh sách. Danh sách được tạo bằng cách đặt các giá trị khác nhau của nhiều loại trong dấu ngoặc vuông [ ], trong khi Tuple sử dụng dấu ngoặc đơn [ ]

Mã Python để tạo danh sách

#Empty List
sample_list1=[]
print["EMPTY LIST: ",sample_list1]

#List with heterogeneous data items
sample_list2 = [1, 2, "abc", "def", 4]
print["LIST: ", sample_list2]

#List with Nested List
sample_list3 = [[1, 2], [3, 4], ["a", "b"]]
print["NESTED LIST: ",sample_list3]

Output:
EMPTY LIST:  []
LIST:  [1, 2, 'abc', 'def', 4]
NESTED LIST:  [[1, 2], [3, 4], ['a', 'b']]

Mã Python để tạo Tuple

#Empty Tuple
sample_tuple1 = []
print["EMPTY TUPLE: ",sample_tuple1]

#Tuple with heterogeneous data items
sample_tuple2 = ["abc", "def", 4, 5, 6]
print["TUPLE: ", sample_tuple2]

#Tuple with Nested Tuples
sample_tuple3 = [[1, 2], [3, 4], ["a", "b"]]
print["NESTED TUPLE: ",sample_tuple3]

Output:
EMPTY TUPLE:  []
TUPLE:  ['abc', 'def', 4, 5, 6]
NESTED TUPLE:  [[1, 2], [3, 4], ['a', 'b']]

khả năng biến đổi

Khả năng thay đổi là sự khác biệt đáng kể nhất giữa Danh sách và Tuple

  • Danh sách có thể thay đổi, trong khi Tuples là bất biến
  • Danh sách có thể thay đổi nghĩa là chúng ta có thể thay đổi hoặc sửa đổi các phần tử hoặc một phần của danh sách

Trong khi Tuples là bất biến, các phần tử của Tuple không thể được sửa đổi sau khi được gán.  

  • Danh sách hỗ trợ tất cả các chức năng như loại bỏ, sửa đổi và xóa một phần tử hoặc toàn bộ danh sách, trong khi việc loại bỏ các phần tử riêng lẻ trong bộ dữ liệu là không thể;
  • Mã Python bên dưới hiển thị kiểm tra khả năng thay đổi của cả Danh sách và Tuple
#Let’s try to change list elements
sample_list = [1, 2, "abc", "def", 4]
print["Original List: ", sample_list]

sample_list[2] = "codingninjas"
print["Changed List: ", sample_list]

print[]

#Lets try to change tuple elements
sample_tuple = ["abc", "def", 4, 5, 6]
print["Original Tuple: ", sample_tuple]

sample_tuple[2] = "codingninjas"
print["Changed Tuple: ", sample_tuple]


Output:
Original List:  [1, 2, 'abc', 'def', 4]
Changed List:  [1, 2, 'codingninjas', 'def', 4]

Original Tuple:  ['abc', 'def', 4, 5, 6]
Traceback [most recent call last]:
File "", line 11, in 
TypeError: 'tuple' object does not support item assignment.

TypeError chỉ ra rằng tuple là bất biến và nó không thay đổi không gian bộ nhớ được cấp phát sau khi được gán

Sử dụng bộ nhớ

  • Bộ dữ liệu được tạo nhanh hơn danh sách
  • Tại sao như vậy?
  • Bất kể việc triển khai như thế nào, các danh sách có kích thước thay đổi, trong khi tuple là một cấu trúc bất biến có kích thước cố định, không mở rộng thêm bộ nhớ được phân bổ của nó sau khi khai báo ban đầu.  
  • Do đó, cuối cùng, Mức tiêu thụ bộ nhớ theo bộ ít hơn so với Danh sách

Phương pháp tích hợp

  • Các phương thức tích hợp là các chương trình được xác định trước bằng ngôn ngữ lập trình mà người dùng có thể sử dụng trực tiếp mà không phải lo lắng về việc triển khai nó
  • Danh sách và Tuple chỉ chia sẻ hai phương thức tích hợp, chỉ mục[] và đếm[]. Ngoài ra, chỉ có danh sách hỗ trợ các phương thức tích hợp khác nhau như append[], pop[], remove[], insert[], v.v. , do bản chất có thể thay đổi của nó

Mã Python bên dưới hiển thị các chức năng của các phương thức tích hợp

#Built-in Methods

#Lists
sample_list = [1, 3, 4, "abc", "def", [8, 9]]
ans = sample_list.index[3]
print["Index of element 3 in sample_list:", ans]

#Tuple
sample_tuple = [2, 4, [1, 2], [6, 7]]
ans = sample_tuple.index[4]
print["Index of element 4 in sample_tuple:", ans]

#Let’s check what if element is not present
ans = sample_list.index[5]
print["Index of element 5 in sample_list: ", ans]


Output:

Index of element 3 in sample_list: 1
Index of element 4 in sample_tuple: 1
Traceback [most recent call last]:
  File "", line 11, in 
ValueError: 5 is not in list

ValueError cho biết phần tử được yêu cầu không có trong danh sách hoặc bộ dữ liệu

Bảng tham chiếu cho Tuple so với Danh sách

Vì chúng ta đã đề cập đến mọi khía cạnh của danh sách và bộ dữ liệu, đồng thời biết được chúng giống và khác nhau như thế nào trong các ngữ cảnh khác nhau, nên hãy tạo một bảng giữa chúng để tham khảo nhanh

LISTTUPLEDanh sách là một tập hợp có thứ tự các phần tử không đồng nhất trong một biến duy nhất. Tuple cũng là một tập hợp có thứ tự các phần tử tùy ý trong một biến duy nhất. Dấu ngoặc vuông [ ] với các phần tử được phân tách bằng dấu phẩy tạo danh sách. Dấu ngoặc đơn [ ] và các phần tử được phân tách bằng dấu phẩy tạo bộ dữ liệu. Danh sách có thể thay đổi. Tuples là bất biến. Danh sách được lưu trữ dưới dạng các khối bộ nhớ riêng biệt được liên kết với nhau bằng con trỏ. Do đó, nó tiêu tốn nhiều dung lượng bộ nhớ hơn. Các bộ dữ liệu được lưu trữ trong các không gian bộ nhớ đơn và nhỏ hơn. Danh sách hỗ trợ các phương thức tích hợp khác nhau như append[],pop[],insert[],remove[],clear[] ,index[],count[], v.v. Tuples chỉ hỗ trợ hai phương thức tích hợp, index[] và count[]. Danh sách là một cấu trúc dữ liệu có kích thước thay đổi và linh hoạt hơn. Tuple có kích thước cố định và do tính chất bất biến của nó, nó chống lại sự thay đổi. Từ điển không hỗ trợ danh sách làm khóa do tính chất có thể thay đổi của nó. Từ điển sử dụng các bộ dữ liệu làm khóa do tính chất có thể băm và không thay đổi của chúng

Nếu bạn đang tìm kiếm nội dung có cấu trúc để tìm hiểu kiến ​​thức cơ bản về python, bạn có thể xem Đường dẫn có hướng dẫn về Kiến thức cơ bản về Python.  

Đường dẫn có Hướng dẫn là một trong những ngành dọc trong CodeStudio. Nó là một nền tảng được phát triển bởi một số người đam mê đầy tham vọng và các chuyên gia làm việc có kinh nghiệm trong các công ty như Google, Amazon, Microsoft. Tại CodeStudio, bạn gặp các vấn đề phỏng vấn, kinh nghiệm phỏng vấn và các vấn đề thực hành có thể giúp bạn đạt được công việc mơ ước của mình.  

Các câu hỏi thường gặp

Sự khác biệt giữa bộ dữ liệu Python và danh sách là gì?

Bộ và Danh sách là tập hợp có thứ tự của các mục dữ liệu khác nhau trong một biến, nhưng điểm khác biệt chính là danh sách có thể thay đổi, trong khi bộ dữ liệu là bất biến

Danh sách hoặc bộ dữ liệu nào nhanh hơn?

Bộ dữ liệu nhanh hơn danh sách

Tại sao một bộ nhanh hơn một danh sách trong Python?

Bộ dữ liệu nhanh hơn vì Python phân bổ bộ nhớ cho bộ dữ liệu trong một không gian nhỏ và duy nhất, trong khi đối với danh sách, bộ nhớ được cấp phát trong các khối khác nhau được liên kết bởi con trỏ

Bộ dữ liệu có thể chứa danh sách không?

Có, bộ dữ liệu có thể chứa danh sách và danh sách có thể chứa bộ dữ liệu

Chúng ta có thể thay đổi một danh sách bên trong một tuple không?

Không, bộ dữ liệu là bất biến, vì vậy nội dung của chúng không thể thay đổi

Chìa khóa rút ra

List và Tuples đều là những cấu trúc dữ liệu linh hoạt và được sử dụng nhiều nhất của Python

Ở đây, Bài viết này giải thích ngắn gọn những điểm tương đồng và khác biệt chính giữa bộ dữ liệu và danh sách trong các ngữ cảnh khác nhau. Vì vậy, Chúng tôi đã bắt đầu với các định nghĩa cơ bản và cú pháp đã học để tạo danh sách và bộ

Sau đó, chúng tôi đã thảo luận về các tính năng tương tự như loại phần tử được lưu trữ trong cả hai, dễ dàng truy cập dữ liệu, v.v. , tiếp theo là sự khác biệt quan trọng về khả năng thay đổi, sử dụng bộ nhớ và các phương thức tích hợp

Cuối cùng, một bảng được tạo để tham khảo nhanh và tóm tắt để sửa đổi tất cả các điểm chính được thảo luận trong bài viết

Chúng ta có thể so sánh 2 bộ dữ liệu trong Python không?

Khoa học dữ liệu thực tế sử dụng Python . mục đầu tiên của bộ dữ liệu đầu tiên được so sánh với mục đầu tiên của bộ dữ liệu thứ hai; . Tuples are compared position by position: the first item of the first tuple is compared to the first item of the second tuple; if they are not equal, this is the result of the comparison, else the second item is considered, then the third and so on.

Hàm nào được sử dụng để so sánh các phần tử của cả hai bộ dữ liệu?

Phương thức bộ Python cmp[] so sánh các phần tử của hai bộ.

Chủ Đề