Dữ liệu kiểu danh sách trong Python là gì

Trong Python list là một dạng dữ liệu cho phép lưu trữ nhiều kiểu dữ liệu khác nhau và truy xuất các phần tử bên trong nó thông qua vị trí của phần tử đó trong list. List có thể được coi là một mảng tuần tự như trong các ngôn ngữ khác [như vector trong C++ và ArrayList trong Java]. Lists không nhất thiết phải đồng nhất, điều này khiến nó trở thành một công cụ mạnh mẽ nhất trong Python. Một list đơn có thể bao gồm các loại Datatypes như Integers, Strings cũng như Objects. Lists có thể thay đổi được ngay cả sau khi được tạo.

List trong Python được sắp xếp theo thứ tự và có số lượng xác định. Các phần tử trong list được lập chỉ mục theo một trình tự xác định và việc lập chỉ mục của danh sách được thực hiện với 0 là chỉ số đầu tiên. Mỗi yếu tố trong trong list đều có vị trí xác định trong list, điều này cho phép sao chép các phần tử trong danh sách, với mỗi phần tử có vị trí và độ tin cậy riêng biệt. 

>>> Xem thêm: Khóa học lập trình Python

Cách tạo list trong Python

List trong Python có thể được tạo bằng cách đặt chuỗi bên trong dấu ngoặc vuông []. Không giống như Sets, List không cần chức năng built-in để thiết lập và bao gồm các yếu tố có thể thay đổi được.

Ví dụ về cách tạo List trong Python

# Python program to demonstrate 

# Creation of List 

# Creating a List

List = []

print["Blank List: "]

print[List]

# Creating a List of numbers

List = [10, 20, 14]

print["\nList of numbers: "]

print[List]

# Creating a List of strings and accessing

# using index

List = ["Geeks", "For", "Geeks"]

print["\nList Items: "]

print[List[0]] 

print[List[2]]

# Creating a Multi-Dimensional List

# [By Nesting a list inside a List]

List = [['Geeks', 'For'] , ['Geeks']]

print["\nMulti-Dimensional List: "]

print[List]

Output:

Blank List: [] List of numbers: [10, 20, 14] List Items Geeks Geeks Multi-Dimensional List: [['Geeks', 'For'], ['Geeks']]

Thêm phần tử vào List trong Python

Các phần tử có thể được thêm vào list trong Python bằng cách sử dụng append[] chức năng cài sẵn. Chỉ một phần tử có thể được thêm vào danh sách bằng cách sử dụng phương thức append[]. Để thêm nhiều phần tử bằng append [], bạn phải sử dụng các vòng lặp. Các bộ giá trị cũng có thể được thêm vào List bằng cách sử dụng các phương thức nối tiếp vì các bộ giá trị là bất biến. Không giống như Set, List cũng có thể được thêm vào danh sách hiện có bằng phương thức append[].

Ví dụ thêm phần tử vào List

# Python program to demonstrate 

# Addition of elements in a List

# Creating a List

List = []

print["Initial blank List: "]

print[List]

# Addition of Elements 

# in the List

List.append[1]

List.append[2]

List.append[4]

print["\nList after Addition of Three elements: "]

print[List]

# Adding elements to the List

# using Iterator

for i in range[1, 4]:

    List.append[i]

print["\nList after Addition of elements from 1-3: "]

print[List]  

# Adding Tuples to the List

List.append[[5, 6]]

print["\nList after Addition of a Tuple: "]

print[List]

# Addition of List to a List

List2 = ['For', 'Geeks']

List.append[List2]

print["\nList after Addition of a List: "]

print[List]

Output:

Initial blank List: [] List after Addition of Three elements: [1, 2, 4] List after Addition of elements from 1-3: [1, 2, 4, 1, 2, 3] List after Addition of a Tuple: [1, 2, 4, 1, 2, 3, [5, 6]] List after Addition of a List: [1, 2, 4, 1, 2, 3, [5, 6], ['For', 'Geeks']]

>>> Xem thêm: Django là gì? Khái niệm, ứng dụng và thiết lập Django

Tạo List với nhiều phần tử riêng biệt hoặc trùng lặp

Một list trong Python có thể chứa các giá trị trùng lặp với các giá trị riêng biệt, do đó các giá trị khác biệt hoặc trùng lặp này có thể được chuyển thành một chuỗi tại thời điểm tạo danh sách. Để tạo list với nhiều phần tử trùng lặp, sử dụng lệnh sau:

# Creating a List with 

# the use of Numbers

# [Having duplicate values]

List = [1, 2, 4, 4, 3, 3, 3, 6, 5]

print["\nList with the use of Numbers: "]

print[List]

# Creating a List with 

# mixed type of values

# [Having numbers and strings]

List = [1, 2, 'Geeks', 4, 'For', 6, 'Geeks']

print["\nList with the use of Mixed Values: "]

print[List]

Output: List with the use of Numbers: [1, 2, 4, 4, 3, 3, 3, 6, 5] List with the use of Mixed Values: [1, 2, 'Geeks', 4, 'For', 6, 'Geeks']

Xóa các phần tử trong List 

Để xóa một phần tử trong list của Python, bạn có thể sử dụng câu lệnh del nếu bạn biết chính xác các phần tử mà bạn định xóa hoặc sử dụng phương thức remove [] nếu bạn không biết. Phương thức remove[] chỉ loại bỏ một phần tử tại một thời điểm, để loại bỏ phạm vi phần tử bạn phải sử dụng trình lặp. Phương thức remove [] này sẽ loại bỏ các mục nhất định. 

Ví dụ:

#!/usr/bin/python

list1 - [‘physics’, ‘chemistry’, 1997, 2000];

print list1

del list1[2];

print “After deleting value at index 2:”

print list1

Khi đoạn code trên được thực thi, kết quả sẽ như sau:

[‘physics’, ‘chemistry’, 1997, 2000]

After deleting value at index 2:

[‘physics’, ‘chemistry’, 2000]

Truy cập các phần tử trong List

Để truy cập các mục trong danh sach tham chiếu đến số chỉ mục. Sử dụng toán tử chỉ mục [] để truy cập một mục trong list của Python. Chỉ mục phải là một số nguyên. List được kiểm tra được truy cập bằng cách sử dụng lập chỉ mục lồng nhau.

# Python program to demonstrate 

# accessing of element from list

# Creating a List with

# the use of multiple values

List = ["Geeks", "For", "Geeks"]

# accessing a element from the 

# list using index number

print["Accessing a element from the list"]

print[List[0]] 

print[List[2]]

# Creating a Multi-Dimensional List

# [By Nesting a list inside a List]

List = [['Geeks', 'For'] , ['Geeks']]

# accessing an element from the 

# Multi-Dimensional List using

# index number

print["Acessing a element from a Multi-Dimensional list"]

print[List[0][1]]

print[List[1][0]]

 Output:

Accessing a element from the list Geeks Geeks Acessing a element from a Multi-Dimensional list For Geeks

Kết: Trên đây là một số thao tác
list trong Python, kiểu dữ liệu trong Python rất quan trọng và được sử dụng thường xuyên, nên các LTV có thể tận dụng dạng dữ liệu này trong lập trình. Để tìm hiểu thêm về Python và các ngôn ngữ lập trình khác, tham khóa các  khóa học lập trình tại T3H bạn nhé! 

Bài viết được sự cho phép của tác giả Kien Dang Chung

Chúng ta đã được giới thiệu các kiểu dữ liệu cơ bản trong Python bao gồm kiểu số nguyên [int], kiểu số thực [float], kiểu chuỗi [string] và kiểu logic [boolean]. Với các kiểu dữ liệu cơ bản này, bạn hoàn toàn có thể viết các ứng dụng đơn giản với Python. Với các ứng dụng có số lượng các biến nhiều, dữ liệu lớn chúng ta cần tới các cấu trúc dữ liệu giúp cho việc viết code ngắn gọn và hiệu quả.

  71 trích đoạn code Python cho các vấn đề hàng ngày của bạn

  Biến số và kiểu dữ liệu số trong Python

Xem thêm các cơ hội tuyển dụng Python hấp dẫn trên TopDev

Cấu trúc dữ liệu được sử dụng trong các chương trình để dễ dàng hơn trong việc định vị thông tin và lấy thông tin. Cấu trúc dữ liệu là cách các ngôn ngữ lập trình thể hiện các giá trị cơ bản, chúng chứa các kiểu dữ liệu cơ bản như số, chuỗi, boolean…, nó đưa ra cách thức lưu trữ nhiều giá trị trong một biến số. Cấu trúc dữ liệu cũng được sử dụng để phân nhóm và tổ chức cho các cấu trúc khác.

Để làm rõ hơn sự cần thiết các cấu trúc dữ liệu cơ bản, chúng ta có một ví dụ như sau:

friend1 = "Rolf" friend2 = "Bob" friend3 = "Anne" print[friend1] print[friend2] print[friend3]

Một chương trình rất đơn giản với 3 biến chứa tên 3 người bạn, chúng ta in ra tên 3 người này. Tưởng tượng khi số lượng bạn gia tăng, bạn phải thêm vào hàng trăm biến và hàng trăm câu lệnh in ra màn hình. Quả là một thảm họa. Các cấu trúc dữ liệu cơ bản xuất hiện giúp bạn giải quyết vấn đề này.

List là một tập dữ liệu đơn giản nhất trong Python, một List là một danh sách các thành phần dữ liệu được phân cách bởi dấu phẩy và được bao ngoài bởi dấu ngoặc vuông. Tên của list được gán bằng cách sử dụng dấu =. List có thể chứa các con số hoặc các chuỗi.

friends = ["Rolf","Bob","Anne"] ages = [35,28,37]

Để hiển thị nội dung List chúng ta có thể dùng hàm print[]. List này có thể rất dài, bạn thấy đấy, chương trình ở phần trên với 3 biến có thể viết ngắn gọn hơn.

Chú ý, một danh sách có thể chứa nhiều loại dữ liệu khác nhau nếu bạn thấy cần thiết, tuy nhiên khuyến cáo nên dừng một loại dữ liệu thống nhất cho các phần tử trong danh sách.

friends = ["Rolf",2,"Anne"]

Định nghĩa danh sách này có cả số 2 bên trong danh sách friends, nó rất tối nghĩa, không có người bạn nào tên là 2 cả.

Mỗi phần tử trong List sẽ có một vị trí nhất định tương ứng với một con số, bắt đầu từ số 0 và tăng dần. Chúng ta có thể truy xuất đến các phần tử trong danh sách với cú pháp:

list_name[element_position]

Trong ví dụ trên, để truy xuất đến tên Bob, chúng ta thực hiện như sau:

friends = ["Rolf","Bob","Anne"] print[friends[1]]

Chú ý, nếu bạn truy xuất đến một phần tử không có trong danh sách, một lỗi sẽ xuất hiện có dạng “index out of range”. Ví dụ như các phần tử trong danh sách friends có vị trí tương ứng là 0, 1, 2. Nếu bạn truy xuất đến phần tử có vị trí lớn hơn 2 sẽ gặp lỗi “index out of range”.

Mỗi phần tử trong danh sách của Python có thể là một danh sách, ví dụ như danh sách sau đây, mỗi phần tử là một danh sách gồm tên và tuổi của bạn bè.

friends = [["Rolf", 24], ["Bob", 30], ["Anne", 27]] print[friends[0][1]] print[friends[1][0]]

Trong Python không giới hạn số chiều của danh sách cũng như số phần tử danh sách có thể chứa, nó chỉ phụ thuộc vào dung lượng bộ nhớ máy tính bạn dùng để chạy ứng dụng.

Chú ý, với các danh sách dài, chúng ta nên trình bày mỗi phần tử trên một dòng, như vậy code chương trình sẽ dễ đọc hơn, ví dụ:

friends = [ ["Rolf", 24], ["Bob", 30], ["Anne", 27], ["Charlie", 37], ["Jen", 25], ["Adam", 29], ]

Trong quá trình thao tác với danh sách, bạn sẽ gặp phải một số yêu cầu kiểu như: kiểm tra xem danh sách có chứa một phần tử nào đó không? đếm số phần tử trong danh sách? hoặc các thao tác thêm bớt điều chỉnh phần tử trong danh sách… Các yêu cầu này đều có toán tử hoặc các phương thức được xây dựng sẵn trong đối tượng List.

Toán tử in cho phép bạn kiểm tra một phần tử có nằm trong một danh sách hay không. Ví dụ: Kiểm tra xem “Anne” có trong danh sách friends không?

friends = ["Rolf","Bob","Anne"] has_anne = "Anne" in friends print[has_anne]

Hàm len[] trả về số phần tử có trong một danh sách. Chú ý rằng trong Python các phần tử bắt đầu từ vị trí 0, do đó phần tử cuối cùng sẽ có vị trí là len[] – 1.

friends = ["Rolf","Bob","Anne"] print[f"Danh sách bạn bè có {len[friends]} bạn"]

.append[] thêm một phần tử vào vị trí cuối cùng trong danh sách:

friends = ["Rolf","Bob","Anne"] friends.append["Jen"] new_friend = "Charlie" friends.append[new_friend] print[friends] "Rolf","Bob","Anne","Jen","Charlie"]

.insert[position, item] chèn một phần tử vào danh sách tại vị trí position cho trước.

friends = ["Rolf","Bob","Anne"] friends.insert[1,"Jen"] print[friends] "Rolf","Jen","Bob","Anne"]

Các phần tử phía sau sẽ có vị trí tăng lên 1, bạn cần chú ý khi truy xuất giá trị các phần tử này.

listname[index]=newvalue Thay đổi giá trị một phần tử có vị trí index trong danh sách.

friends = ["Rolf","Bob","Anne"] friends[1] = "Jen" print[friends] "Rolf","Jen","Anne"]

.extend[] Kết hợp danh sách với một danh sách khác.

friends = ["Rolf","Bob","Anne"] old_friends = ["Jen","Charlie"] friends.extend[old_friends] print[friends] "Rolf","Bob","Anne","Jen","Charlie"]

.remove[] Loại bỏ một phần tử khỏi danh sách.

friends = ["Rolf","Bob","Anne"] friends.remove["Bob"] print[friends] "Rolf","Anne"]

.pop[index] Loại bỏ phần tử ở vị trí index cho trước trong danh sách.

friends = ["Rolf","Bob","Anne"] friends.pop[1] print[friends] "Rolf","Anne"]

del Xóa một phần tử hoặc toàn bộ danh sách

friends = ["Rolf","Bob","Anne"] del friends[1] print[friends] "Rolf","Anne"] del friends print[friends] 'friends' is not defined

.clear[] Xóa sạch các phần tử trong danh sách

friends = ["Rolf","Bob","Anne"] friends.clear[] print[friends]

Chú ý, .clear[] khác với del, .clear[] xóa toàn bộ các phần tử trong danh sách, còn del xóa luôn cả biến danh sách.

.count[] Đếm số lần một phần tử xuất hiện trong danh sách.

friends = ["Rolf","Bob","Anne","Bob"] print[f"Có {friends.count['Bob']} người tên Bob trong danh sách bạn bè"]

.index[] Trả về vị trí phần tử trong danh sách

friends = ["Rolf","Bob","Anne"] print[f"Anne ở vị trí thứ {friends.index['Anne']} trong danh sách"]

.sort[] sắp xếp các phần tử trong danh sách.

friends = ["Rolf","Bob","Anne"] friends.sort[] print[friends] "Anne","Bob","Rolf"]

Mặc định sắp xếp này là tăng dần với dữ liệu chuỗi sẽ sắp xếp a-z, A-Z, với số 0-9. Để sắp xếp giảm dần sử dụng tham số reverse = True.

reverse[] Đảo ngược thứ tự các phần tử trong danh sách.

friends = ["Rolf","Bob","Anne"] friends.reverse[] print[friends] "Anne","Bob","Rolf"]

.copy[] Copy toàn bộ danh sách.

friends = ["Rolf","Bob","Anne"] news_friends = friends.copy[] news_friends.append["Jen"] print[news_friends] "Anne","Bob","Rolf","Jen"]

Python hỗ trợ một cấu trúc dữ liệu cũng tương tự với List có tên là Tuple, chỉ có một khác biệt Tuple là danh sách bất biến, không thể thay đổi nội dung. Tức là ngay sau khi định nghĩa Tuple, bạn không thể thay đổi nó. Vậy tại sao có cấu trúc này và Tuple dùng trong những trường hợp nào? Câu trả lời sẽ có ở cuối bài viết này.

Định nghĩa một Tuple cũng giống như định nghĩa một List trong Python, chỉ khác một điều là thay vì sử dụng ngoặc vuông chúng ta sử dụng ngoặc thường ở đây.

friends = ["Rolf","Bob","Anne"]

Chú ý, Python cho phép định nghĩa Tuple mà không cần sử dụng dấu ngoặc thường. Ví dụ:

friends = "Rolf","Bob","Anne"

Đây là một định nghĩa Tuple, thậm chí Tuple chỉ có một phần tử:

friends = "Rolf",

Chú ý dấu phẩy, nếu không có dấu phẩy thì đây là định nghĩa một chuỗi.

Tuple là một danh sách đặc biệt, không thể thay đổi khi đã tạo ra, do đó bạn có thể sử dụng tất cả các kỹ thuật, các hàm như với List nhưng loại trừ những hàm tác động thay đổi nội dung.

Ví dụ, bạn có thể sử dụng toán tử in, hàm len[] với Tuple:

friends = ["Rolf","Bob","Anne"] has_anne = "Annnnnne" in friends print[has_anne]

hoặc

friends = ["Rolf","Bob","Anne"] print[f"Danh sách bạn bè có {len[friends]} bạn"]

Tất cả các phương thức .append[], .extend[], .clear[], .copy[], .insert[], .pop[], .remove[], .reverse[], .sort[] không sử dụng được với cấu trúc dữ liệu Tuple.

Chú ý, bạn không thể thay đổi Tuple nhưng có thể tạo ra một Tuple từ hai Tuple, xem ví dụ sau:

friends = ["Rolf","Bob","Anne"] friends = friends + ["Jen",] print[friends] "Rolf","Bob","Anne","Jen"]

Tuple có những hạn chế là khi tạo ra không thể thay đổi được tuy nhiên Tuple lại có những ưu điểm như sau:

  • Tuple có tốc độ xử lý nhanh hơn List, do Tuple được lưu trữ một khối bộ nhớ xác định còn List thì thường xuyên phải thay đổi không gian lưu trữ. Nếu bạn định nghĩa một tập các giá trị là hằng số và sau đó duyệt qua tập hợp này thì nên chọn Tuple.
  • Sử dụng Tuple giúp code an toàn hơn, khi đó chế độ “write-protect” giúp cho dữ liệu không thể thay đổi. Do vậy nên lựa chọn cho những dữ liệu dạng hằng số, dữ liệu không thay đổi theo thời gian.
  • Tuple còn được sử dụng làm khóa trong Dictionary do nó chứa các giá trị không đổi, List không được sử dụng làm khóa cho Dictionary.

Bài viết gốc được đăng tải tại allaravel.com

Có thể bạn quan tâm:

Xem thêm Việc làm IT hấp dẫn trên TopDev

Video liên quan

Chủ Đề