Hướng dẫn danh sách trống trong Python - Cách tạo danh sách trống trong Python

Nếu bạn muốn tìm hiểu cách tạo danh sách trống bằng Python một cách hiệu quả, thì bài viết này là dành cho bạn.

Bạn sẽ học:

  • Cách tạo danh sách trống bằng dấu ngoặc vuông [].
  • Cách tạo danh sách trống bằng cách sử dụng list().
  • Các trường hợp sử dụng của chúng.
  • Mức độ hiệu quả của chúng (cái này nhanh hơn cái kia!). Chúng tôi sẽ sử dụng timeitmô-đun để so sánh chúng.

Hãy bắt đầu nào! ✨

? Sử dụng dấu ngoặc vuông

Bạn có thể tạo một danh sách trống với một cặp dấu ngoặc vuông trống, như sau:  

? Mẹo: Chúng tôi gán danh sách trống cho một biến để sử dụng nó sau này trong chương trình của chúng tôi.

Ví dụ:

num = []

Danh sách trống sẽ có độ dài 0, như bạn có thể thấy ngay tại đây:

>>> num = [] >>> len(num) 0

Danh sách rỗng là falsy giá trị, có nghĩa là họ đánh giá để Falsetrong một bối cảnh boolean:

>>> num = [] >>> bool(num) False

Thêm phần tử vào danh sách trống

Bạn có thể thêm các phần tử vào danh sách trống bằng các phương pháp append()insert():

  • append() thêm phần tử vào cuối danh sách.
  • insert() thêm phần tử tại chỉ mục cụ thể của danh sách mà bạn chọn.

Vì danh sách có thể là giá trị true hoặc falsy tùy thuộc vào việc chúng có trống hay không khi chúng được đánh giá, bạn có thể sử dụng chúng trong các điều kiện như sau:

if num: print("This list is not empty") else: print("This list is empty")

Đầu ra của mã này là:

This list is empty

Bởi vì danh sách trống, vì vậy nó đánh giá là Sai.

Nói chung:

  • Nếu danh sách không trống, nó sẽ đánh giá là True, do đó mệnh đề if được thực thi.
  • Nếu danh sách trống, nó đánh giá là False, vì vậy mệnh đề else được thực thi.

Thí dụ:

Trong ví dụ dưới đây, chúng tôi tạo một danh sách trống và gán nó cho biến num. Sau đó, sử dụng vòng lặp for, chúng tôi thêm một chuỗi các phần tử (số nguyên) vào danh sách ban đầu trống:

>>> num = [] >>> for i in range(3, 15, 2): num.append(i)

Chúng tôi kiểm tra giá trị của biến để xem liệu các mục đã được nối thành công hay chưa và xác nhận rằng danh sách không còn trống nữa:  

>>> num [3, 5, 7, 9, 11, 13]

? Mẹo: Chúng tôi thường sử dụng append()để thêm phần tử đầu tiên vào danh sách trống, nhưng bạn cũng có thể thêm phần tử này bằng cách gọi insert()phương thức có chỉ mục 0:

>>> num = [] >>> num.insert(0, 1.5) # add the float 1.5 at index 0 >>> num [1.5]

? Sử dụng hàm tạo danh sách ()

Ngoài ra, bạn có thể tạo một danh sách trống với phương thức list()khởi tạo kiểu , phương thức này sẽ tạo một đối tượng danh sách mới.

Theo Tài liệu Python:

Nếu không có đối số nào được đưa ra, hàm tạo sẽ tạo một danh sách trống mới [],.

? Mẹo: Thao tác này sẽ tạo một đối tượng danh sách mới trong bộ nhớ và vì chúng tôi không chuyển bất kỳ đối số nào cho list()nên một danh sách trống sẽ được tạo.

Ví dụ:

num = list()

Danh sách trống này sẽ có độ dài 0, như bạn có thể thấy ngay tại đây:

>>> num = list() >>> len(num) 0

Và nó là một falsy giá trị khi nó là rỗng (nó để đánh giá Falsetrong bối cảnh boolean):

>>> num = list() >>> bool(num) False

Thí dụ:

Đây là một danh sách đầy đủ chức năng, vì vậy chúng tôi có thể thêm các phần tử vào đó:

>>> num = list() >>> for i in range(3, 15, 2): num.append(i)

Và kết quả sẽ là một danh sách không trống, như bạn có thể thấy ngay tại đây:

>>> num [3, 5, 7, 9, 11, 13]

? Các trường hợp sử dụng

  • Chúng tôi thường sử dụng list()để tạo danh sách từ các tệp lặp hiện có như chuỗi, từ điển hoặc bộ giá trị.
  • Bạn sẽ thường thấy dấu ngoặc vuông []được sử dụng để tạo danh sách trống trong Python vì cú pháp này ngắn gọn hơn và nhanh hơn.

? Hiệu quả

Chờ đợi! Tôi vừa nói với bạn rằng []nhanh hơn list()...

Nhưng nhanh hơn bao nhiêu?

Hãy kiểm tra hiệu quả thời gian của họ bằng cách sử dụng timeit module.

Để sử dụng mô-đun này trong chương trình Python của bạn, bạn cần nhập nó:

>>> import timeit

Cụ thể, chúng tôi sẽ sử dụng hàm thời gian từ mô-đun này, bạn có thể gọi hàm này theo cú pháp:

? Mẹo: Mã được lặp lại nhiều lần để giảm chênh lệch thời gian có thể phát sinh từ các yếu tố bên ngoài, chẳng hạn như các quy trình khác có thể đang chạy tại thời điểm cụ thể đó. Điều này làm cho kết quả đáng tin cậy hơn cho các mục đích so sánh.

? Về điểm của bạn ... hãy chuẩn bị ... sẵn sàng! Đây là mã và kết quả:

Đầu tiên, chúng tôi nhập mô-đun.

>>> import timeit

Sau đó, chúng tôi bắt đầu thử nghiệm từng cú pháp.

Thử nghiệm []:

>>> timeit.timeit('[]', number=10**4) 0.0008467000000109692

Thử nghiệm list():

>>> timeit.timeit('list()', number=10**4) 0.002867799999989984

? Mẹo: Lưu ý rằng mã mà bạn muốn định thời gian phải được bao quanh bởi dấu ngoặc kép ''hoặc dấu ngoặc kép "". Thời gian trả về của timeithàm được biểu thị bằng giây.

So sánh các kết quả này:

  • []: 0.0008467000000109692
  • list(): 0.002867799999989984

Bạn có thể thấy rằng []nhanh hơn nhiều list(). Có sự chênh lệch khoảng 0.002vài giây trong thử nghiệm này:

>>> 0.002867799999989984 - 0.0008467000000109692 0.0020210999999790147

Tôi chắc rằng bạn phải hỏi điều này ngay bây giờ: Tại sao lại list()kém hiệu quả hơn []nếu họ làm đúng như vậy?

Chà ... list()chậm hơn vì nó yêu cầu tra cứu tên của hàm, gọi hàm, và sau đó tạo đối tượng danh sách trong bộ nhớ. Ngược lại, []nó giống như một "phím tắt" không yêu cầu quá nhiều bước trung gian để tạo danh sách trong bộ nhớ.

Sự khác biệt về thời gian này sẽ không ảnh hưởng nhiều đến hiệu suất của chương trình của bạn nhưng thật tuyệt khi biết cái nào hiệu quả hơn và cách chúng hoạt động đằng sau hậu trường.

? Tóm tắt

Bạn có thể tạo danh sách trống bằng cách sử dụng một cặp dấu ngoặc vuông trống []hoặc phương thức khởi tạo kiểu list(), một hàm dựng sẵn tạo danh sách trống khi không có đối số nào được truyền.

Dấu ngoặc vuông []thường được sử dụng trong Python để tạo danh sách trống vì nó nhanh hơn và ngắn gọn hơn.

Tôi thực sự hy vọng rằng bạn thích bài viết của tôi và thấy nó hữu ích. Bây giờ bạn có thể tạo danh sách trống trong các dự án Python của mình. Kiểm tra các khóa học trực tuyến của tôi. Theo dõi tôi trên Twitter. ⭐️

Nếu bạn muốn đi sâu hơn vào danh sách, bạn có thể muốn đọc:

  • Nối danh sách Python - Cách thêm một phần tử vào một mảng, được giải thích với các ví dụ
  • Phương pháp mảng danh sách sắp xếp trong Python - Tăng dần và giảm dần được giải thích với các ví dụ
  • Nối danh sách Python VS Mở rộng danh sách Python - Giải thích sự khác biệt với các ví dụ về phương pháp mảng