HomeLập trìnhPythonDanh sách Python...

Danh sách Python Tuple VS – Sự khác biệt là gì?


Bộ dữ liệu và danh sách là hai trong số bốn loại dữ liệu tích hợp sẵn mà bạn có thể sử dụng để lưu trữ dữ liệu trong Python.

Cả hai đều hữu ích và thoạt nhìn có vẻ giống nhau. Nhưng chúng có sự khác biệt đáng kể và mỗi loại được sử dụng tốt nhất trong các trường hợp khác nhau.

Bài viết này sẽ cung cấp cho bạn một cái nhìn tổng quan về cách hoạt động của bộ dữ liệu và danh sách. Chúng ta sẽ thảo luận về các đặc điểm cá nhân và các trường hợp sử dụng độc đáo của chúng, đồng thời tôi sẽ trình bày những điểm tương đồng và khác biệt của chúng trong quá trình thực hiện.

Bạn có thể thử các ví dụ mã được hiển thị trong bài viết bằng cách sử dụng trình bao Python tương tác mà bạn nhận được khi cài đặt Python trên máy tính của mình.

Bắt đầu nào!

Tuples và Lists trong Python là gì?

Bộ dữ liệu và Danh sách đều là cấu trúc dữ liệu tích hợp sẵn trong Python.

Chúng là các thùng chứa cho phép bạn sắp xếp dữ liệu của mình bằng cách cho phép bạn lưu trữ một bộ sưu tập được sắp xếp theo thứ tự gồm một hoặc nhiều mục.

Một tuple có một lớp là ‘tuple’, <class 'tuple'>và một danh sách có một lớp ‘danh sách’, <class 'list'>.

Bạn luôn có thể sử dụng type() chức năng tích hợp sẵn và chuyển đối tượng làm đối số mà bạn muốn kiểm tra. Điều này cho phép bạn kiểm tra xem đó là một bộ hay một danh sách.

Giả sử bạn đã tạo một Tuple có tên my_tuple. Bạn có thể kiểm tra loại của nó như vậy:

>>>type(my_tuple)

#output
<class 'tuple'>

Điều này đặc biệt hữu ích cho việc gỡ lỗi.

Bây giờ hãy xem xét một số điểm tương đồng khác giữa bộ dữ liệu và danh sách.

Điểm giống nhau giữa Tuples và Lists trong Python

Như tôi đã đề cập trước đây, bộ dữ liệu và danh sách thực sự giống nhau và chúng chia sẻ một số tính năng mà chúng tôi sẽ trình bày ngay bây giờ.

Bộ dữ liệu và danh sách đều có thể lưu trữ nhiều mục dưới một biến duy nhất

Các bộ và danh sách có thể trống hoặc có thể chứa một hoặc thậm chí nhiều mục trong một biến.

Sự khác biệt duy nhất là ở cú pháp: bạn tạo các bộ bằng cách bao quanh các mục bên trong chúng bằng các dấu ngoặc tròn mở và đóng, ()trong khi các danh sách được biểu thị và xác định bởi sự hiện diện của dấu ngoặc vuông mở và đóng,[].

Để tạo một trống rỗng tuple, bạn có thể tự mình sử dụng dấu ngoặc đơn,()hoặc là tuple() phương thức khởi tạo.

>>>type(())
<class 'tuple'>

>>>my_tuple = ()

>>>type(my_tuple)
<class 'tuple'>

#or..


>>>my_tuple = tuple()

>>>type(my_tuple)
<class 'tuple'>

Để tạo một trống rỗng list bạn chỉ có thể sử dụng hai dấu ngoặc vuông trống hoặc gọi phương thức list() phương thức khởi tạo.

>>>type([])
<class 'list'>


>>>my_list = []

#or..

>>>my_list = list()

Khi tạo một tuple với một mụcđừng quên thêm dấu phẩy ở cuối.

>>>age = (28,)

Nếu bạn đang sử dụng tuple() để tạo bộ dữ liệu, đừng quên rằng nó cần dấu ngoặc kép.

>>>age = tuple((28,))

>>>type(age)
<class 'tuple'>

Nếu bạn không thêm dấu phẩy ở cuối, Python sẽ không thừa nhận nó là một bộ.

>>>age = (28)

>>>type(age)
<class 'int'>

Khi tạo một danh sách với một mụcbạn không phải lo lắng về việc thêm dấu phẩy ở cuối.

>>> age = [28]

>>> type(age)
<class 'list'>

Các mục được lưu trữ thường giống nhau về bản chất và có liên quan với nhau theo một cách nào đó.

Đọc thêm  Nối chuỗi trong Python – STR Appending

Bạn có thể tạo một bộ hoặc một danh sách chỉ chứa một chuỗi các chuỗi, chỉ một chuỗi các số nguyên hoặc chỉ một chuỗi các giá trị Boolean, với mỗi mục trong chuỗi được phân tách bằng dấu phẩy.

Bạn cũng có thể tạo một bộ hoặc danh sách chứa hỗn hợp các loại dữ liệu khác nhau.

>>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False]

#or..

>>>my_information = list(("Dionysia",27,True,"Lemonaki",7,"Python",False))

print(my_information)
['Dionysia', 27, True, 'Lemonaki', 7, 'Python', False]

Danh sách và bộ dữ liệu có thể chứa các mục trùng lặp và các giá trị có thể được lặp lại, xuất hiện nhiều lần.

>>>information = ("Jimmy",50,True,"Kate",50)

>>>print(information)
('Jimmy', 50, True, 'Kate', 50)

or..

>>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False,27,"Python",27]

Nếu bạn quên dấu phẩy, bạn sẽ gặp lỗi:

>>>information = ("Jimmy" 50,True,"Kate",50)
File "<stdin>", line 1
    >>>information = ("Jimmy" 50,True,"Kate",50)
    ^
SyntaxError: invalid syntax
>>>my_information = ["Dionysia" 28,True,"Lemonaki",7,"Python",False]
 File "<stdin>", line 1
    my_information = ["Dionysia" 28,True,"Lemonaki",7,"Python",False]
                                 ^
SyntaxError: invalid syntax

Để kiểm tra độ dài và xác định có bao nhiêu phần tử trong một bộ hoặc một danh sách, bạn sử dụng len() phương pháp.

>>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False,27,"Python",27]

>>>len(my_information)
7

Tuples và Lists trong Python đều hỗ trợ giải nén

Về cơ bản, khi tạo một bộ dữ liệu hoặc một danh sách, nhiều giá trị được ‘đóng gói’ thành một biến duy nhất như tôi đã đề cập trước đó.

>>>front_end = ("html","css","javascript")

Các giá trị đó có thể được ‘giải nén’ và gán cho các biến riêng lẻ.

>>>front_end = ("html","css","javascript")

>>>content,styling,interactivity = front_end

>>>content
'html'

>>>styling
'css'

>>>interactivity
'javascript'

Đảm bảo rằng các biến bạn tạo có cùng số với các giá trị bên trong bộ/danh sách, nếu không Python sẽ báo lỗi cho bạn:

>>>front_end = ("html","css","javascript")

>>>content,styling = front_end
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)


#or..


>>>front_end = ("html","css","javascript")

>>>content,styling,interactivity,data =  front_end
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 4, got 3)

Bạn có thể truy cập các mục theo chỉ mục của chúng trong cả bộ dữ liệu và danh sách trong Python

Như đã đề cập trước đó, bộ dữ liệu và danh sách đều là một ra lệnh bộ sưu tập các mặt hàng.

Thứ tự được thiết lập và không thể thay đổi, đồng thời được duy trì trong suốt vòng đời của chương trình.

Thứ tự các mục được chỉ định sẽ luôn giữ nguyên kể từ thời điểm chúng được tạo.

Mỗi giá trị trong một bộ và một danh sách có một mã định danh duy nhất, còn được gọi là chỉ mục.

Do đó, mỗi mục trong một bộ và danh sách có thể được truy cập bằng cách tham chiếu chỉ mục đó.

Lập chỉ mục trong Python (và trong hầu hết các ngôn ngữ lập trình và Khoa học máy tính nói chung) bắt đầu từ .

Vì vậy, mục đầu tiên có chỉ mục là mục thứ hai có chỉ số là 1và như thế.

Đọc thêm  Python Parse JSON – Cách đọc tệp JSON

Bạn viết tên của bộ hoặc danh sách và sau đó là tên của chỉ mục trong dấu ngoặc vuông.

>>>names = ("Jimmy","Timmy","John","Kate")

>>>names[2]
'John'

Hoặc như thế này:

>>>programming_languages = ["Python","JavaScript","Java","C"]

>>>programming_languages[0]
'Python'

>>>programming_languages[1]
'JavaScript'

Được rồi, bây giờ chúng ta đã thấy chúng giống nhau như thế nào, bây giờ hãy xem các bộ dữ liệu và danh sách khác nhau như thế nào.

Sự khác biệt giữa Tuples và Lists trong Python

Bộ dữ liệu là bất biến trong khi danh sách có thể thay đổi trong Python

Tuple là bất biến trong Python, nghĩa là một khi bạn đã tạo một tuple thì các mục bên trong nó không thể thay đổi.

Tuples không thể được thay đổi liên tục.

Nếu bạn cố gắng thay đổi giá trị của một trong các mục, bạn sẽ gặp lỗi:

>>>names = ("Jimmy","Timmy","John","Kate")

>>>names[2] = "Kelly"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Bạn không thể thêm, thay thế, chỉ định lại hoặc xóa bất kỳ mục nào vì không thể thay đổi bộ dữ liệu.

Điều này cũng có nghĩa là các bộ dữ liệu có độ dài cố định. Độ dài của chúng không bao giờ thay đổi trong suốt vòng đời của chương trình.

Khi nào nên sử dụng bộ dữ liệu

Bộ dữ liệu rất tốt để sử dụng nếu bạn muốn dữ liệu trong bộ sưu tập của mình ở chế độ chỉ đọc, không bao giờ thay đổi và luôn giữ nguyên và không đổi.

Do khả năng này và đảm bảo rằng dữ liệu không bao giờ thay đổi, các bộ dữ liệu có thể được sử dụng trong từ điển và tập hợp, yêu cầu các phần tử chứa bên trong chúng phải thuộc loại bất biến.

Khi nào nên sử dụng danh sách

Mặt khác, bạn có thể dễ dàng thay đổi và sửa đổi danh sách vì danh sách là có thể thay đổi.

Điều này có nghĩa là các danh sách có thể thay đổi được – bạn có thể thêm các mục vào danh sách, xóa các mục khỏi danh sách, di chuyển các mục xung quanh và chuyển đổi chúng dễ dàng trong danh sách.

Danh sách hữu ích khi bạn muốn dữ liệu của mình linh hoạt hoặc không phải lúc nào cũng giữ nguyên và được sửa đổi khi cần.

Danh sách hỗ trợ nhiều phương thức Python tích hợp sẵn thực hiện một số thao tác nhất định trên danh sách mà bạn không thể sử dụng trên bộ dữ liệu.

Điều này có nghĩa là độ dài và kích thước của danh sách tăng lên và thu hẹp lại trong suốt vòng đời của chương trình.

Bây giờ hãy xem xét một số cách đơn giản để thay đổi danh sách.

Cách cập nhật danh sách trong Python

Vì danh sách có thể thay đổi nên bạn sẽ cần biết một số cách cơ bản để có thể cập nhật dữ liệu trong đó.

Cách cập nhật một mục trong danh sách bằng Python

Để cập nhật một mục cụ thể trong danh sách, bạn tham chiếu số chỉ mục của nó trong dấu ngoặc vuông, rồi gán cho nó một giá trị mới.

#general syntax
>>>list_name[index] = new_value

>>>programming_languages = ["Python","JavaScript","Java","C"]
>>>print(programming_languages)
['Python', 'JavaScript', 'Java', 'C']

>>>programming_languages[2] = "C++"
>>>print(programming_languages)
['Python', 'JavaScript', 'C++', 'C']

Cách thêm các mục vào danh sách trong Python

Có một số phương thức tích hợp sẵn trong Python để thêm các mục vào danh sách.

Các .append() phương thức thêm một mục mới vào chấm dứt của danh sách.

#general syntax
>>>list_name.append(item)

>>>programming_languages = ["Python","JavaScript","Java","C"]
>>>print(programming_languages)
['Python', 'JavaScript', 'Java', 'C']

>>>programming_languages.append("C++")

>>>print(programming_languages)
['Python', 'JavaScript', 'Java', 'C', 'C++']

Để thêm một mục tại một vị trí cụ thể, bạn sử dụng .insert() phương pháp.

Đọc thêm  Học Python bằng cách xây dựng 5 trò chơi

Thao tác này sẽ chèn một mục vào danh sách tại vị trí đã cho. Phần còn lại của các thành phần trong danh sách xuất hiện sau mục bạn muốn thêm đều được đẩy sang một vị trí bên phải.

#general syntax
>>>list_name.insert(index,item)

>>>names = ["Cody","Dillan","James","Nick"]
>>>print(names)
['Cody', 'Dillan', 'James', 'Nick']


>>>names.insert(0,"Stephanie")

>>>print(names)
['Stephanie', 'Cody', 'Dillan', 'James', 'Nick']

Nếu bạn muốn thêm nhiều mục vào danh sách của mình, bạn sử dụng .extend() phương pháp.

Điều này thêm một lần lặp tại chấm dứt của danh sách. Ví dụ: bạn có thể thêm danh sách mới vào cuối danh sách hiện có.

#general syntax
>>>list_name.extend(iterable)

>>>programming_languages = ["Python","JavaScript"]
>>>more_programming_languages = ["Java","C"]

#add more_programming_languages to programming_languages
>>>programming_languages.extend(more_programming_languages) 

>>>print(programming_languages)
['Python', 'JavaScript', 'Java', 'C']

Cách xóa các mục khỏi danh sách trong Python

Có hai phương pháp tích hợp để xóa các mục khỏi danh sách trong Python.

một là .remove() phương pháp. Thao tác này sẽ loại bỏ phiên bản đầu tiên của mục bạn chỉ định.

#general syntax
>>>list_name.remove(item)

>>>programming_languages = ["Python", "JavaScript", "Java", "C"]
>>>print(programming_languages)
['Python', 'JavaScript', 'Java', 'C']

>>>programming_languages.remove("Java")
>>>print(programming_languages)
['Python', 'JavaScript', 'C']

#deletes only first occurence
>>>programming_languages = ["Python", "JavaScript", "Java", "C","Python"]
>>>programming_languages.remove("Python")
>>>print(programming_languages)
['JavaScript', 'Java', 'C', 'Python']

Một cách khác là sử dụng .pop() phương pháp.

Không truyền đối số, nó sẽ xóa mục cuối cùng trong danh sách.

Bạn có thể chuyển vào dưới dạng đối số chỉ mục của mục cụ thể mà bạn muốn xóa.

Trong cả hai trường hợp, giá trị đã loại bỏ được trả về, điều này rất hữu ích. Nếu muốn, bạn có thể lưu trữ nó trong một biến để sử dụng sau này.

>>>programming_languages = ["Python", "JavaScript", "Java", "C"]

>>>programming_languages.pop()
'C'


>>>print(programming_languages)
['Python', 'JavaScript', 'Java']

#store returned value in a variable
>>>programming_languages = ["Python", "JavaScript", "Java", "C"]

>>>fave_language = programming_languages.pop(0)
>>>print(fave_language)
Python

Phần kết luận

Điều này đánh dấu sự kết thúc phần giới thiệu của chúng tôi về cách các bộ dữ liệu và danh sách hoạt động cũng như cách chúng thường được sử dụng.

Tóm lại, điểm tương đồng giữa các bộ dữ liệu và danh sách là:

  • Cả hai đều được coi là đối tượng trong Python.
  • Chúng là các thùng chứa, được sử dụng để lưu trữ dữ liệu. Dữ liệu đó có thể thuộc bất kỳ loại nào.
  • Cả hai đều được sắp xếp và duy trì trật tự đó trong suốt thời gian. Khi thứ tự của các mục được xác định, nó sẽ không thay đổi.
  • Trong cả bộ dữ liệu và danh sách, bạn có thể truy cập các mục riêng lẻ theo chỉ mục.

Các khác biệt giữa các bộ dữ liệu và danh sách là:

  • Tuple là bất biến. Sử dụng chúng khi bạn biết chắc chắn rằng dữ liệu của bạn sẽ không thay đổi trong vòng đời của chương trình hoặc khi bạn muốn đảm bảo rằng dữ liệu của bạn sẽ luôn giữ nguyên.
  • danh sách là có thể thay đổi. Bạn có thể thêm và xóa các mục. Danh sách phát triển và thu nhỏ trong suốt vòng đời của một chương trình. Sử dụng chúng khi dữ liệu của bạn được thay đổi.

Nếu bạn muốn tìm hiểu chuyên sâu về Python, freeCodeCamp cung cấp chứng chỉ Python miễn phí.

Bạn bắt đầu từ những điều cơ bản tuyệt đối và tiến tới các chủ đề phức tạp hơn như cấu trúc dữ liệu và cơ sở dữ liệu quan hệ. Cuối cùng, có năm dự án thực hành để củng cố kiến ​​thức của bạn.

Cảm ơn đã đọc và học tập vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status