Danh sách Python là tập hợp các giá trị được sắp xếp và có thể chứa bất kỳ loại giá trị nào. Nó là một thùng chứa nơi chúng ta có thể chèn, xóa hoặc sửa đổi các giá trị hiện có vì danh sách có thể thay đổi trong Python. Không giống như các bộ, danh sách có thể giữ cùng một giá trị nhiều lần và coi mỗi giá trị là một mục riêng biệt. Trong hướng dẫn này, chúng ta sẽ đọc cách khởi tạo một danh sách trong Python
Mục lục
- Giới thiệu về danh sách khởi tạo Python
- Khởi tạo bằng dấu ngoặc vuông trong Python
- Sử dụng hàm list[] để khởi tạo danh sách
- Sử dụng khả năng hiểu để khởi tạo danh sách
- Khởi tạo bằng toán tử *
- Bớt tư tưởng
Giới thiệu về danh sách khởi tạo Python
Trong Python, người dùng có thể thực hiện một tác vụ bằng nhiều cách khác nhau. Tương tự, để khởi tạo một danh sách trong Python, có nhiều cách để làm điều đó và chúng ta sẽ thảo luận một số cách trong hướng dẫn này
Khởi tạo danh sách bằng dấu ngoặc vuông trong Python
Nếu bạn muốn tạo một danh sách trống không có giá trị nào trong Python, dấu ngoặc vuông là cách để khởi tạo danh sách có giá trị trống. Bạn chỉ cần khai báo một danh sách không có giá trị bằng cách chỉ định một tập hợp các dấu ngoặc vuông không có giá trị mục
Đầu vào
list = []
print [list]
list = [1,2,3,4]
print [list]
đầu ra
[]
[1,2,3,4]
Sử dụng hàm list[] để khởi tạo danh sách trong Python
Đó là một cách khác để tạo danh sách trống không có giá trị trong Python vì hàm list[] tạo danh sách từ đối tượng có thể lặp lại
Một iterable có thể là một vùng chứa, một chuỗi hỗ trợ phép lặp hoặc một đối tượng lặp. Nếu không có tham số nào được chỉ định, thì một danh sách trống mới sẽ được tạo
Đầu vào
list_1 = list[]
print [list_1]
res = []
print [data == res]
đầu ra
[]
TRUE
Vì cách tiếp cận dấu ngoặc vuông mang tính hướng dẫn và ngắn gọn hơn nên nó được ưu tiên hơn cách tiếp cận hàm list[]
Sử dụng khả năng hiểu để khởi tạo danh sách trong Python
Để khởi tạo danh sách với các giá trị mặc định, chúng ta có thể sử dụng phương thức đọc hiểu. Nó bao gồm các dấu ngoặc vuông chứa một biểu thức, theo sau là mệnh đề for và tiếp theo là mệnh đề if tùy chọn. Biểu thức có thể là bất kỳ loại đối tượng nào mà bạn muốn đưa vào danh sách. Vì người dùng đang khởi tạo danh sách bằng 0 nên biểu thức sẽ chỉ là 0
Hiểu danh sách là một cách dễ dàng để xác định danh sách dựa trên trình lặp vì nó thanh lịch, đơn giản và được công nhận rộng rãi
Đầu vào
list = [i for i in range[5]]
print [list]
đầu ra
[0,1,2,3,4]
Phương pháp này nhanh hơn nhiều so với việc sử dụng vòng lặp for và while để khởi tạo danh sách trong Python
Khởi tạo danh sách bằng toán tử * trong Python
Một cách tiếp cận khác để khởi tạo danh sách có nhiều giá trị là toán tử *. Cú pháp là [object]*n trong đó n là số phần tử không có trong mảng
Phương pháp này cho phép chúng tôi tạo một danh sách với một số lượng cụ thể các giá trị được xác định trước
Đầu vào
list = [5]*10
print [list]
đầu ra
[5,5,5,5,5,5,5,5,5,5]
Đây là phương thức nhanh nhất trong số tất cả các phương thức được thảo luận để khởi tạo danh sách trong Python
Hạn chế duy nhất của việc sử dụng toán tử * để khởi tạo danh sách trong Python là khi khai báo mảng 2d vì nó tạo danh sách nông. e chỉ có một đối tượng danh sách sẽ được tạo và tất cả các chỉ số sẽ đề cập đến đối tượng này, điều này có thể gây bất tiện. Đó là lý do tại sao trong trường hợp mảng 2d, hiểu là cách tốt hơn để khởi tạo danh sách
Bớt tư tưởng
Khởi tạo danh sách là một trong những điều cơ bản cần biết khi làm việc với danh sách. Chúng ta đã thảo luận về dấu ngoặc vuông và hàm list[] để tạo danh sách trống và khả năng hiểu và toán tử * để tạo danh sách có nhiều giá trị. Mọi người có thể tìm hiểu về các khái niệm Python khác tại đây
PHP8. 1 bổ sung một tính năng có vẻ như là một chi tiết nhỏ, nhưng một tính năng mà tôi nghĩ sẽ có tác động đáng kể hàng ngày đối với nhiều người. Vì vậy, "mới trong bộ khởi tạo RFC" này là gì?
________số 8Trong ví dụ về máy trạng thái này, chúng tôi muốn xây dựng lớp của mình theo hai cách. có và không có trạng thái ban đầu. Nếu chúng tôi xây dựng nó mà không có trạng thái ban đầu, chúng tôi muốn đặt một trạng thái mặc định. Tất nhiên, PHP hỗ trợ đặt giá trị ban đầu trực tiếp trong danh sách tham số, nhưng chỉ dành cho các kiểu nguyên thủy. Ví dụ: nếu máy trạng thái của chúng tôi sử dụng các chuỗi thay vì các đối tượng bên trong, chúng tôi có thể viết hàm tạo của nó như vậy
class MyStateMachine
{
public function __construct[
private string $state = 'initial',
] {
}
}
Vì vậy, với PHP 8. 1, chúng tôi cũng có thể sử dụng cú pháp "giá trị mặc định" đó cho các đối tượng. Nói cách khác. bạn có thể sử dụng
[]
[1,2,3,4]
6 cho các đối số mặc định [là một ví dụ về "bộ khởi tạo"][]
[1,2,3,4]
0Tuy nhiên, "Bộ khởi tạo" không chỉ là giá trị mặc định của tham số, đây là lời giải thích đơn giản từ RFC
RFC này đề xuất cho phép sử dụng các biểu thức mới bên trong các giá trị mặc định của tham số, đối số thuộc tính, bộ khởi tạo biến tĩnh và bộ khởi tạo hằng số toàn cầu
Bạn đọc nó đúng. các thuộc tính cũng nằm trong danh sách này. Hãy tưởng tượng một thư viện xác thực đơn giản sử dụng các thuộc tính để xác thực đầu vào trên các thuộc tính. Có lẽ nó sẽ có thể xác thực các phần tử mảng, đại loại như thế này
[]
[1,2,3,4]
1Trước PHP 8. 1, bạn sẽ không thể viết loại mã này, vì bạn không được phép sử dụng
[]
[1,2,3,4]
6 trong các thuộc tính, do cách chúng được đánh giá, nhưng bây giờ bạn có thểHãy cùng điểm qua một số chi tiết quan trọng đáng nói
Xem video mới nhất của tôi
PHP trong 1 phút
Chỉ thi công khi cần thiết
Những loại "giá trị mới" này sẽ chỉ được xây dựng khi thực sự cần thiết. Điều đó có nghĩa là, trong ví dụ đầu tiên của chúng tôi, PHP sẽ chỉ tạo một đối tượng mới của
[]
[1,2,3,4]
8 nếu không có đối số nào được đưa ra[]
[1,2,3,4]
2Ví dụ, trong trường hợp các thuộc tính, các đối tượng sẽ chỉ được tạo khi
class MyStateMachine
{
public function __construct[
private string $state = 'initial',
] {
}
}
0 được gọi trên thuộc tính phản chiếuKhông thuộc tính lớp
Bạn cũng nên biết rằng bạn không thể sử dụng
[]
[1,2,3,4]
6 làm giá trị mặc định trong thuộc tính của lớp. Hỗ trợ chức năng này sẽ gây ra nhiều tác dụng phụ không lường trước được, ví dụ, khi sắp xếp và hủy sắp xếp các đối tượng[]
[1,2,3,4]
4May mắn thay, chúng tôi đã thăng cấp các thuộc tính cho phép một giá trị mặc định, vì PHP sẽ phiên mã cú pháp thăng hạng thuộc tính, giữ giá trị mặc định trong đối số hàm tạo, chứ không phải trong thuộc tính thực tế
Đây là phiên bản được dịch mã trông như thế nào
[]
[1,2,3,4]
5Đầu vào hạn chế
Bạn có thể đã đoán ra, nhưng bạn chỉ có thể chuyển một bộ đầu vào giới hạn khi xây dựng các đối tượng mới trong bộ khởi tạo. Ví dụ: bạn không thể sử dụng biến, toán tử trải rộng, lớp ẩn danh, v.v. Tuy nhiên, đó là một bổ sung rất đáng hoan nghênh
PHP ngày càng tốt hơn với mỗi bản cập nhật. Một số người cho rằng những thay đổi này không thực sự cần thiết vì chúng không thêm bất kỳ chức năng mới nào vào ngôn ngữ;
👍
👍
👍 0
Nhận thấy một tpyo? . Nếu bạn muốn cập nhật những gì đang diễn ra trên blog này, bạn có thể theo dõi tôi trên Twitter hoặc đăng ký nhận bản tin của tôi. Đăng ký email