Danh sách là một trong những loại dữ liệu hữu ích và linh hoạt nhất có sẵn trong Python. Danh sách là một tập hợp các đối tượng tùy ý, giống như mảng trong các ngôn ngữ lập trình khác.
Trong hướng dẫn này, bạn sẽ học:
- Tổng quan về danh sách và cách chúng được xác định.
- Các phương pháp chèn dữ liệu vào danh sách bằng cách sử dụng:
list.append()
,list.extend
vàlist.insert()
. - Cú pháp, mã ví dụ và đầu ra cho từng phương pháp chèn dữ liệu.
- Cách triển khai ngăn xếp bằng phương pháp chèn và xóa danh sách.
điều kiện tiên quyết
Đối với hướng dẫn này, bạn cần:
- Trăn 3.
- Một trình soạn thảo mã của sự lựa chọn của bạn.
Danh sách trong Python
Danh sách có các thuộc tính sau giúp chúng trở nên mạnh mẽ và linh hoạt:
- Danh sách được sắp xếp.
- Danh sách được truy cập bằng chỉ mục. Chỉ số đầu tiên bắt đầu từ
.
- Danh sách có thể thay đổi và động, có nghĩa là chúng có thể được sửa đổi sau khi tạo.
Cách tạo danh sách trong Python
Bạn tạo một danh sách bằng dấu ngoặc vuông trong Python.
Chúng ta có thể để trống chúng và cung cấp các giá trị sau trong chương trình:
# Create an empty list
programming_lang = []
Chúng tôi cũng có thể cung cấp các giá trị trong khi tạo danh sách:
# Create a filled list
programming_lang = ['P','Y','T','H','O','N']
Điều này sẽ tạo ra một danh sách như trong hình bên dưới:

Cách truy cập các mục trong danh sách
Khi các mục trong danh sách được sắp xếp theo thứ tự, bạn có thể truy cập chúng bằng cách sử dụng chỉ mục của chúng.
Cú pháp: list[index]
.
Trong hình bên dưới, “P” ở chỉ số “0” trong khi “H” ở chỉ số “3”.

Hãy viết một chương trình ngắn để xác định danh sách và truy cập các mục của nó:
programming_lang = ['P','Y','T','H','O','N']
print(programming_lang)
print("At index 0:", programming_lang[0])
print("At index 3:",programming_lang[3])
Đầu ra:

Bạn cũng có thể truy cập các mục bằng cách sử dụng chỉ mục phủ định, trong đó -1
đại diện cho mục danh sách cuối cùng. Nếu chúng tôi muốn truy cập mục cuối cùng từ danh sách trên, chúng tôi cũng có thể sử dụng chỉ mục -1
:
programming_lang = ['P','Y','T','H','O','N']
print(programming_lang)
print("At index -1:", programming_lang[-1])
print("At index -5:",programming_lang[-5])
Đầu ra:

Cách tìm độ dài của danh sách
Chúng ta có thể dễ dàng tìm thấy độ dài của một danh sách bằng cách sử dụng len()
phương pháp.
programming_lang = ['P','Y','T','H','O','N']
print("Length of List: ",len(programming_lang))
Đầu ra:

Các phương pháp để thêm các mục vào danh sách
Chúng tôi có thể mở rộng danh sách bằng bất kỳ phương pháp nào dưới đây:
list.insert()
– chèn một phần tử vào bất kỳ đâu trong danh sách.list.append()
– luôn thêm các mục (chuỗi, số, danh sách) vào cuối danh sách.list.extend()
– thêm các mục có thể lặp lại (danh sách, bộ dữ liệu, chuỗi) vào cuối danh sách.
Cách chèn các mục trong danh sách với insert()
Bạn có thể chèn các mục vào danh sách tại bất kỳ chỉ mục nào bằng cách sử dụng insert()
phương pháp. Có nhiều phương pháp chèn hơn và chúng ta sẽ xem xét chúng sau trong bài viết này.
Cú pháp chèn: insert(index, element)
.
Ví dụ về chèn():
# create a list of odd numbers
odd_n = [1,3,5,7,9]
# '21' is inserted at index 3 (4th position)
odd_n.insert(3, 21)
print('List of odd #:', odd_n)
Trước khi chèn:

Sau khi chèn:

Đầu ra:

Cách thêm một mục vào danh sách bằng cách sử dụng list.append()
Chúng ta có thể thêm một một vật thể ở cuối danh sách bằng cách sử dụng list.append()
.
cú pháp: list.append(item)
.
Ví dụ:
# crops list
crops = ['corn', 'wheat', 'cotton']
# Add 'cane' to the list
crops.append('cane')
print('Updated crops list: ', crops)
Đầu ra:

⚠️Lưu ý rằng việc cố gắng thêm nhiều mục sẽ tạo ra một ngoại lệ, vì list.append()
chỉ nhận một đối số duy nhất.

list.append()
.Cách thêm nhiều mục vào danh sách bằng cách sử dụng list.extend()
Chúng ta có thể thêm nhiều mục vào một danh sách bằng cách sử dụng extend()
phương pháp.
Ví dụ dưới đây kết hợp hai danh sách thành một danh sách duy nhất.
# create a list
even_numbers = [2, 4, 8]
# create another list
more_even_numers = [100, 400]
# add all elements of even_numbers to more_even_numbers
even_numbers.extend(more_even_numers)
print('List after extend():', even_numbers)
Đầu ra:

extend()
.Các cách khác để mở rộng danh sách trong Python:
danh sách cắt
Cắt lát cho phép chúng tôi chọn một loạt các giá trị trong danh sách.
Cú pháp được hiển thị dưới đây:
list[starting index:upto index]
Ví dụ,
- danh sách[1:3] sẽ trả lại các mục bắt đầu từ chỉ mục 1 đến (không bao gồm) chỉ mục 3.
- Thiếu chỉ mục bên trái ngụ ý bắt đầu từ chỉ mục 0.
list[:len(list)]
có nghĩa là bắt đầu từ chỉ số 0 và tiếp tục cho đến khi kết thúc.
- Thiếu chỉ mục bên phải ngụ ý cho đến chỉ mục cuối cùng.
list[0:]
ngụ ý bắt đầu từ chỉ số 0 cho đến mục cuối cùng.
Hãy xem cách chúng ta có thể thêm danh sách bằng cách cắt lát.
Ví dụ:
A = [99, 100, 101]
B = [103, 104, 105]
# starting from last index +1, add items from list B
A[len(A):] = B
print('A =', A)
Đầu ra:

Kết hợp các mảng bằng toán tử +
Hãy kết hợp hai mảng odd
và even
thành một danh sách duy nhất bằng cách sử dụng +
nhà điều hành.
Ví dụ:
odd = [1, 3, 5, 7]
even = [2, 4, 6, 8]
odd += even # odd = odd + even
# Output: [1, 2, 3, 4]
print('odd and even combined =', odd)
Đầu ra:

Cách điền danh sách trống bằng cách sử dụng for loop
và append()
Có hai cách để điền danh sách trống: sử dụng for
vòng lặp với append()
và sử dụng hiểu danh sách.
Trước tiên hãy sử dụng for
vòng lặp với append()
.
Ví dụ:
Trong ví dụ này, chúng ta đang tính diện tích hình vuông và nối kết quả vào một mảng.
# Return area of square
# Area of square = length x length
def square_area(side_length):
result = []
for length in side_length:
result.append(length*length)
return result
lengths = [1, 4, 9, 20]
print(square_area(lengths))
Đầu ra:

Chúng ta có thể làm cho đoạn mã trên hiệu quả bằng cách bỏ qua hoàn toàn for loop - append()
kết hợp và sử dụng khả năng hiểu danh sách để thay thế. Hãy xem làm thế nào trong phần tiếp theo.
Cách điền danh sách trống bằng cách sử dụng tính năng hiểu danh sách
Khả năng hiểu danh sách làm cho mã đơn giản và dễ đọc bằng cách kết hợp for
vòng lặp và append()
thành một dòng duy nhất.
Chúng ta có thể sửa đổi ví dụ trước để hiểu được danh sách. Lưu ý các dòng nhận xét ở đây:
# Return area of square
# Area of square = length x length
def square_area(side_length):
#result = []
#for length in side_length:
# result.append(length*length)
return [length*length for length in side_length]
lengths = [1, 4, 9, 20]
print(square_area(lengths))
return [length*length for length in side_length]
là hiểu danh sách.Đầu ra:

Cả hai phương pháp điền vào danh sách trống đều hợp lệ và phù hợp trong các tình huống khác nhau.
Append()
so với Insert()
so với Extend()
Append()
luôn thêm một mục duy nhất vào cuối danh sách. Nó rất hữu ích khi chỉ cần chèn một mục duy nhất.
Nhưng nếu bạn cần thực hiện nhiều bổ sung, extend()
là một lựa chọn tốt hơn vì nó thêm các mục có thể lặp lại trong một đợt.
Bạn nên sử dụng Insert()
khi cần chèn vào một chỉ mục hoặc phạm vi chỉ mục cụ thể.
Cách triển khai ngăn xếp (LIFO)
Ngăn xếp (LIFO) là gì?
Ngăn xếp là cách sắp xếp các mặt hàng theo thứ tự vào sau ra trước. Mục đi sau cùng là mục xuất hiện trước. Một ví dụ về ngăn xếp sẽ là ngăn xếp hoàn tác/làm lại trong các ứng dụng chỉnh sửa ảnh.
Sơ đồ dưới đây giải thích một cách trực quan về ngăn xếp.
Bạn có thể thêm một mục bằng cách sử dụng append()
.
Bạn có thể xóa một mục bằng cách sử dụng pop()
. Xem chi tiết của pop()
phương pháp ở đây.

ngăn xếp mã hóa
Hãy tạo một lớp ngăn xếp nơi đầu tiên chúng ta khai báo một danh sách trống trong init
phương pháp.
Các push()
phương pháp nối thêm một mục vào danh sách.
Các pop()
phương thức xóa mục cuối cùng của danh sách bằng cách sử dụng pop()
. Nếu không có mục nào trong danh sách, một ngoại lệ sẽ được đưa ra.
Các __len
__ phương thức xác định độ dài của ngăn xếp.
Cuối cùng, __repr
__ trả về đầu ra ở định dạng có thể đọc được.
Định nghĩa lớp:
class Stack:
def __init__(stack_t):
stack_t._items = []
def push(stack_t, item):
stack_t._items.append(item)
def pop(stack_t):
try:
return stack_t._items.pop()
except IndexError:
print("Stack is empty, all items deleted")
def __len__(stack_t):
return len(stack_t._items)
def __repr__(stack_t):
return f"stack ({stack_t._items})"
Thân mã:
Hãy gọi các hàm của lớp và xem kết quả hoạt động.
stack = Stack()
# Push items onto the top of the stack
stack.push(3)
stack.push(5)
stack.push(8)
stack.push(99)
# Print stack
print(stack)
# Find the length of the stack
print("Length of stack is:" ,len(stack))
# Pop items from the stack
print("popping last item")
stack.pop()
print(stack)
print("popping last item again")
stack.pop()
print(stack)
print("finally the stack is")
print(stack)
Đầu ra:
Chúng tôi đã thêm 3, 5, 8, 99 vào ngăn xếp. Tiếp theo, chúng tôi in ngăn xếp và chiều dài của nó. Sau đó, chúng tôi xuất hiện hai mục và in ngăn xếp mỗi lần.

kết thúc
Trong hướng dẫn này, chúng ta đã học các phương pháp tạo danh sách. Chúng tôi cũng đã xem xét một số ví dụ cùng với việc triển khai thực tế các ngăn xếp để xem tất cả hoạt động như thế nào.
Điều yêu thích của bạn mà bạn đã học được từ hướng dẫn này là gì? cho tôi biết trên Twitter!
Bạn có thể đọc các bài viết khác của tôi ở đây.