Danh sách Python sử dụng cấu trúc dữ liệu nào?

Cấu trúc dữ liệu được sử dụng để lưu trữ và tổ chức dữ liệu hiệu quả. Chúng cho phép bạn nhanh chóng truy cập và thao tác dữ liệu. Python bao gồm nhiều cấu trúc dữ liệu tích hợp cho phép quản lý dữ liệu dễ dàng. Trong bài viết này, chúng ta sẽ tìm hiểu về hai cấu trúc dữ liệu quan trọng nhất của Python, danh sách và bộ dữ liệu

Cấu trúc dữ liệu #1. Danh sách trong Python

Cấu trúc dữ liệu linh hoạt nhất trong Python là một danh sách. Chúng được sử dụng để lưu trữ nhiều mục dữ liệu khác nhau, từ số nguyên đến chuỗi và thậm chí là một danh sách khác. Chúng có thể thay đổi, nghĩa là các phần tử của chúng có thể được thay đổi ngay cả sau khi danh sách đã được tạo

Tạo danh sách

Danh sách được tạo thành bằng cách đặt các phần tử trong dấu ngoặc vuông [vuông] và phân tách từng mục bằng dấu phẩy

1
2
3
4
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[type[test_list]]
print[test_list]

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']

Truy cập các phần tử danh sách

Lập chỉ mục được sử dụng để truy cập các phần tử danh sách. Mỗi phần tử danh sách có một chỉ mục tương ứng với vị trí của nó trong danh sách. Mục đầu tiên trong danh sách có chỉ số là 0, mục thứ hai có chỉ số là 1, v.v. Phần tử cuối cùng của danh sách có chỉ mục nhỏ hơn độ dài của danh sách

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]

đầu ra

1
2
3
Engineer
Doctor
Architect

Có một vài tính năng độc đáo trong cấu trúc dữ liệu danh sách.
Chúng ta có thể có các giá trị trùng lặp trong danh sách vì mỗi phần tử có vị trí của nó và sử dụng vị trí đó, chúng ta có thể truy cập phần tử.

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]

đầu ra

1
2
Doctor
Doctor

Chúng ta có thể có các loại giá trị khác nhau trong cùng một danh sách

1
2
3
4
5
#creating a list with different types of values
test_list = ['Engineer', 10, 10.5, 'Doctor', -1]
print[test_list[1]]
print[test_list[2]]
print[test_list[4]]

đầu ra

1
2
3
4
10
10.5
  -
  1

Trong danh sách, chúng ta có thể truy cập các phần tử bằng cách sử dụng các chỉ số phủ định

________số 8

đầu ra

1
2
3
4
5
Accountant
Doctor
Architect
lawyer
Engineer

Chúng ta có thể trả về phạm vi phần tử giữa hai vị trí trong danh sách. Khái niệm này được gọi là cắt lát. Để trả về các phần tử trong phạm vi, chúng ta cần cung cấp các chỉ mục bắt đầu và kết thúc như thế này List_name[start. chấm dứt]. Điều này sẽ in các phần tử giữa bao gồm chỉ mục bắt đầu và không bao gồm chỉ mục kết thúc

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
0

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
1

Nối các giá trị trong danh sách

Chúng tôi có thể thêm thành viên mới vào danh sách hiện có bằng phương pháp

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
7 hoặc
1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
8

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
7

Thao tác này sẽ thêm phần tử cụ thể vào vị trí cuối cùng

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
2

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
3
1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
8

Thao tác này sẽ chèn phần tử cụ thể vào vị trí đã chỉ định

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
4

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
5

Xóa phần tử khỏi danh sách

Sử dụng các phương thức hoặc

1
2
Doctor
Doctor
1, chúng ta có thể xóa các phần tử khỏi danh sách giống như thêm chúng bằng cách sử dụng
1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
7 hoặc
1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
8

Thao tác này sẽ xóa lần xuất hiện đầu tiên khỏi danh sách khớp với một giá trị đã chỉ định

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
6

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
7
1
2
Doctor
Doctor
1

Thao tác này sẽ xóa một phần tử tại một chỉ mục đã chỉ định khỏi danh sách. Nếu không có chỉ mục nào được chỉ định, thì phần tử cuối cùng sẽ bị xóa

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
8

đầu ra

1
< class 'list' > ['Engineer', 'Doctor', 'Architect']
9

Sắp xếp danh sách

Sắp xếp là một thao tác quan trọng trong cấu trúc dữ liệu và chúng ta sẽ sử dụng thao tác này hầu hết thời gian. Trong Python, chúng ta có thể sử dụng hàm sort[] và nó sẽ cho phép bạn sắp xếp lại danh sách của mình theo thứ tự tăng dần hoặc giảm dần

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
0

đầu ra

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
1

Nhưng đây không phải là một điều đơn giản khi sắp xếp danh sách có giá trị chuỗi. Các phần tử chuỗi này được lưu trữ dưới dạng giá trị ASCII. Mỗi ký tự trong chuỗi có một giá trị số nguyên được liên kết với nó và với giá trị đó, chúng tôi sử dụng các giá trị này để sắp xếp chuỗi

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
2

đầu ra

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
3

nối danh sách

Hai hoặc nhiều danh sách có thể được nối bằng ký hiệu '+'. Điều này sẽ trả về một danh sách có hai hoặc nhiều danh sách được kết hợp

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
4

đầu ra

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
5Liệt kê các hiểu biết

Khả năng hiểu danh sách cung cấp một phương pháp thuận tiện để tạo danh sách mới. Bằng cách thực hiện thao tác trên từng thành phần của danh sách hiện có, các danh sách mới này được tạo

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
6

đầu ra

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
7

Vòng lặp for truyền thống ở trên có thể được viết ngắn gọn thành một dòng mã bằng cách sử dụng khả năng hiểu danh sách

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
8

đầu ra

1
2
3
4
5
#creating a list
test_list = ['Engineer', 'Doctor', 'Architect']
print[test_list[0]]
print[test_list[1]]
print[test_list[2]]
7

Ngăn xếp & Hàng đợi Sử dụng Danh sách

Python đi kèm với cấu trúc dữ liệu tích hợp được gọi là danh sách. Tuy nhiên, chúng tôi có thể sử dụng nó để tạo cấu trúc dữ liệu tùy chỉnh. Ngăn xếp và hàng đợi là hai cấu trúc dữ liệu cực kỳ phổ biến do người dùng xác định được tạo bằng danh sách

ngăn xếp

Ngăn xếp là danh sách các phần tử trong đó các phần tử mới được thêm vào đầu danh sách hoặc bị xóa ở cuối danh sách. Hãy tưởng tượng nó như một chồng sách. Bạn luôn tìm cách lên ngăn xếp bất cứ khi nào bạn cần thêm hoặc xóa sách. Nó sử dụng nguyên tắc Last-In-First-Out đơn giản

1
2
3
Engineer
Doctor
Architect
0

đầu ra

1
2
3
Engineer
Doctor
Architect
1Xếp hàng

Mặt khác, hàng đợi là một danh sách các phần tử trong đó các phần tử mới được thêm vào cuối danh sách và các phần tử cũ được xóa khỏi đầu danh sách. Nó có thể so sánh với việc đứng trong một hàng trong thế giới thực. Dòng trở nên ngắn hơn khi những người ở đầu hàng rời đi. Sẽ lâu hơn khi có người mới xếp hàng từ phía sau. Nó tận dụng nguyên tắc Nhập trước xuất trước

1
2
3
Engineer
Doctor
Architect
2

đầu ra

1
2
3
Engineer
Doctor
Architect
3

Cấu trúc dữ liệu #2. Bộ dữ liệu trong Python

Một cấu trúc dữ liệu tích hợp phổ biến khác trong Python là bộ. Chúng khá giống với danh sách với một ngoại lệ - tính bất biến của chúng.
Điều này ngụ ý rằng một bộ không thể được sửa đổi hoặc thêm vào sau khi nó đã được hình thành. Hãy xem cách tạo một tuple trong Python và cách chơi với nó bên dưới.

Tạo Tuples trong Python

Bạn có thể tạo các bộ dữ liệu bằng cách đặt dữ liệu trong dấu ngoặc đơn và tách từng phần bằng dấu phẩy. Bạn có thể tạo một bộ ngay cả khi bạn viết một số mục trong một hàng mà không có bất kỳ dấu ngoặc đơn nào và gán chúng cho một biến

1
2
3
Engineer
Doctor
Architect
4

Bây giờ chúng ta đã tạo các bộ dữ liệu, hãy xem bản chất bất biến của chúng

Tính bất biến của Tuples

Immutable trong Python đề cập đến thứ không thể thay đổi sau khi tạo. Hai loại đối tượng trong ngôn ngữ lập trình Python là có thể thay đổi và không thể thay đổi.
Danh sách, từ điển và bộ là ví dụ về các đối tượng có thể thay đổi có thể thay đổi sau khi tạo. Chúng ta sẽ khám phá những điều này trong các phần sau. Ngược lại, các đối tượng bất biến bao gồm số nguyên, số dấu phẩy động, giá trị boolean, chuỗi và bộ dữ liệu. Vậy thì điều gì khiến chúng không thể thay đổi được?
Mọi thứ trong Python đều là đối tượng. Do đó, chúng ta có thể kiểm tra địa chỉ bộ nhớ của đối tượng bằng cách sử dụng phương thức id[] tích hợp. Điều này được gọi là danh tính của đối tượng. Hãy tạo một danh sách sau đó tìm danh sách và tất cả các thành phần của nó.

1
2
3
Engineer
Doctor
Architect
5

đầu ra

1
2
3
Engineer
Doctor
Architect
6

Bạn có thể thấy rằng danh sách và các thành phần của nó được lưu trữ trong các phần khác nhau của bộ nhớ. Chúng tôi có thể thay đổi giá trị của các thành phần của danh sách vì chúng tôi biết rằng danh sách có thể thay đổi. Hãy thử điều đó và xem các giá trị vị trí thay đổi như thế nào

1
2
3
Engineer
Doctor
Architect
7

đầu ra

1
2
3
Engineer
Doctor
Architect
8

Vị trí của phần tử đã thay đổi, nhưng vị trí của danh sách vẫn giữ nguyên. Nó biểu thị việc tạo một đối tượng mới cho phần tử và lưu nó vào danh sách. Thuật ngữ "có thể thay đổi" đề cập đến điều này. Một đối tượng bất biến không thể thay đổi trạng thái hoặc nội dung của nó sau khi được tạo, mặc dù một đối tượng có thể thay đổi có thể

Các bộ dữ liệu được gọi là giả bất biến;

1
2
3
Engineer
Doctor
Architect
9

đầu ra

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
0
1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
1

đầu ra

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
2

Như đoạn mã trên thể hiện, chúng ta có thể thay đổi giá trị của các đối tượng bất biến, tôi. e. , danh sách chứa trong tuple

Gán Tuple và Thay đổi Giá trị Tuple

Với việc đóng gói và giải nén bộ dữ liệu, chúng ta có thể gán giá trị cho bộ dữ liệu gồm các phần tử từ bộ dữ liệu khác trong một dòng

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
3

đầu ra

1
2
3
4
#creating a list with duplicate values
test_list = ['Engineer', 'Doctor', 'Architect', 'Doctor']
print[test_list[1]]
print[test_list[3]]
4

Mặc dù không thể sửa đổi các giá trị bộ, nhưng bạn có thể thay đổi chúng bằng cách chuyển chúng thành một danh sách với list[]. Khi bạn hoàn tất việc xử lý dữ liệu của mình, bạn có thể sử dụng hàm tuple để chuyển đổi nó trở lại tuple[]

Danh sách Python sử dụng cấu trúc dữ liệu nào?

Danh sách là một cấu trúc dữ liệu trong Python một chuỗi các phần tử có thể thay đổi hoặc có thể thay đổi theo thứ tự . Mỗi phần tử hoặc giá trị bên trong danh sách được gọi là một mục. Giống như các chuỗi được định nghĩa là các ký tự nằm giữa các dấu ngoặc kép, các danh sách được xác định bằng cách có các giá trị nằm giữa các dấu ngoặc vuông [ ].

Cấu trúc dữ liệu nào sử dụng danh sách?

Danh sách là một cấu trúc dữ liệu được sắp xếp với các phần tử được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông . Ví dụ: list1 và list2 được hiển thị bên dưới chứa một loại dữ liệu.

danh sách được xây dựng

Python có bốn cấu trúc dữ liệu sẵn có không nguyên thủy là Danh sách, Từ điển, Tuple và Tập hợp . Chúng gần như bao gồm 80% cấu trúc dữ liệu trong thế giới thực của chúng tôi.

Danh sách có phải là cấu trúc dữ liệu tuyến tính trong Python không?

Cấu trúc dữ liệu tuyến tính dễ triển khai vì bộ nhớ máy tính được sắp xếp theo cách tuyến tính. Các ví dụ của nó là mảng, ngăn xếp, hàng đợi, danh sách được liên kết , v.v.

Chủ Đề