Hầu hết các chương trình không chỉ hoạt động với các biến. Họ cũng sử dụng danh sách các biến. Ví dụ, một chương trình có thể xử lý thông tin về sinh viên trong lớp bằng cách đọc danh sách sinh viên từ bàn phím hoặc từ tệp. Việc thay đổi số lượng học sinh trong lớp không được yêu cầu sửa đổi mã nguồn chương trình
Trước đây chúng ta đã phải đối mặt với nhiệm vụ xử lý các phần tử của một dãy — ví dụ, khi tính toán phần tử lớn nhất của dãy. Nhưng chúng tôi đã không giữ toàn bộ trình tự trong bộ nhớ của máy tính. Tuy nhiên, trong nhiều bài toán, cần phải giữ nguyên cả dãy, chẳng hạn như khi ta phải in ra tất cả các phần tử của dãy theo thứ tự tăng dần ["sắp xếp dãy"]
Để lưu trữ dữ liệu đó, trong Python, bạn có thể sử dụng cấu trúc dữ liệu có tên là danh sách [trong hầu hết các ngôn ngữ lập trình, thuật ngữ khác được sử dụng - “mảng”]. Danh sách là dãy các phần tử được đánh số từ 0, giống như các ký tự trong xâu. Danh sách có thể được đặt thủ công bằng cách liệt kê các phần tử trong danh sách trong ngoặc vuông, như ở đây
Primes = [2, 3, 5, 7, 11, 13] Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
Danh sách
5 1809 1854 1860 1891 19257 có 6 phần tử, cụ thể là.
5 1809 1854 1860 1891 19258,
5 1809 1854 1860 1891 19259,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]0,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]1,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]2,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]3. Danh sách
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]4 có 7 phần tử, mỗi phần tử là xâu
Giống như các ký tự trong chuỗi, các phần tử danh sách cũng có thể có chỉ số âm, ví dụ,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]5,
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]6. Chỉ mục phủ định có nghĩa là chúng ta bắt đầu từ phần tử cuối cùng và đi sang trái khi đọc danh sách
Bạn có thể lấy số lượng phần tử trong danh sách bằng hàm
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]7 [có nghĩa là độ dài của danh sách], e. g.
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]8
Không giống như chuỗi, các phần tử của danh sách có thể thay đổi được;
5 1809 1854 1860 1891 19253____14
Xem xét một số cách tạo và đọc danh sách. Trước hết, bạn có thể tạo một danh sách trống [danh sách không có mục nào, độ dài của nó bằng 0] và bạn có thể thêm các mục vào cuối danh sách của mình bằng cách sử dụng
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]9. Ví dụ: giả sử chương trình nhận được số lượng phần tử trong danh sách
5 1809 1854 1860 1891 19250, sau đó lần lượt
5 1809 1854 1860 1891 19250 phần tử của danh sách tại một dòng riêng biệt. Dưới đây là một ví dụ về dữ liệu đầu vào ở định dạng này
5 1809 1854 1860 1891 1925Trong trường hợp này, bạn có thể tổ chức đọc từ danh sách đó như sau
5 1809 1854 1860 1891 1925
a = [] # start an empty list n = int[input[]] # read number of element in the list for i in range[n]: new_element = int[input[]] # read next element a.append[new_element] # add it to the list # the last two lines could be replaced by one: # a.append[int[input[]]] print[a]
Trong ví dụ minh họa, danh sách trống được tạo, sau đó số lượng phần tử được đọc, sau đó bạn đọc danh sách các mục theo từng dòng và nối vào cuối. Điều tương tự có thể được thực hiện, lưu biến
5 1809 1854 1860 1891 19250
5 1809 1854 1860 1891 1925
5 1809 1854 1860 1891 19253
Có một số hoạt động được xác định cho danh sách. nối danh sách [thêm danh sách, i. e. "dán" danh sách này sang danh sách khác] và lặp lại [nhân danh sách với một số]. Ví dụ
5 1809 1854 1860 1891 19253____25
Danh sách kết quả
5 1809 1854 1860 1891 19253 sẽ bằng ________ 14 và danh sách
5 1809 1854 1860 1891 19255 sẽ bằng ________ 16. Điều này cho phép bạn tổ chức quá trình đọc danh sách khác nhau. đầu tiên, xem xét kích thước của danh sách và tạo một danh sách từ số phần tử mong muốn, sau đó lặp qua biến
5 1809 1854 1860 1891 19257 bắt đầu bằng số 0 và bên trong vòng lặp đọc phần tử thứ 17 của danh sách
5 1809 1854 1860 1891 1925
5 1809 1854 1860 1891 192531
Bạn có thể in các phần tử của danh sách
5 1809 1854 1860 1891 19259 với
5 1809 1854 1860 1891 192530; . Nói chung, điều này là bất tiện; . Dưới đây là hai ví dụ về điều đó, sử dụng các dạng vòng lặp khác
5 1809 1854 1860 1891 19253____133
Tại đây chỉ số
5 1809 1854 1860 1891 19257 được thay đổi, khi đó phần tử
5 1809 1854 1860 1891 192532 được hiển thị
5 1809 1854 1860 1891 19253____135
Trong ví dụ này, các mục danh sách được hiển thị trên một dòng được phân tách bằng dấu cách và không phải chỉ mục bị thay đổi mà thay vào đó là giá trị của chính biến đó [ví dụ: trong vòng lặp
5 1809 1854 1860 1891 192533, biến
5 1809 1854 1860 1891 192534 sẽ nhận các giá trị
5 1809 1854 1860 1891 192535,
5 1809 1854 1860 1891 192536,
Đặc biệt chú ý đến ví dụ cuối cùng. Một phần rất quan trọng của hệ tư tưởng Python là vòng lặp
5 1809 1854 1860 1891 192538, cung cấp cách thuận tiện để lặp qua tất cả các phần tử của một chuỗi nào đó. Đây là điểm Python khác với Pascal, nơi bạn phải lặp lại các chỉ mục của phần tử, nhưng không phải trên chính các phần tử
Chuỗi trong Python là chuỗi, danh sách, giá trị của hàm
5 1809 1854 1860 1891 192539 [đây không phải là danh sách] và một số đối tượng khác
Đây là một ví dụ cho thấy việc sử dụng vòng lặp
5 1809 1854 1860 1891 192538 khi bạn cần trích xuất tất cả các chữ số từ một chuỗi và tạo danh sách số của chúng
5 1809 1854 1860 1891 19253____137
Quảng cáo của Google, có thể dựa trên sở thích của bạn
Các mục danh sách có thể được đưa ra trong một dòng được phân tách bằng một ký tự; . Sau đó, bạn có thể sử dụng phương thức chuỗi
5 1809 1854 1860 1891 192532, phương thức này trả về danh sách các chuỗi có được sau khi cắt chuỗi ban đầu bằng dấu cách. Ví dụ
5 1809 1854 1860 1891 192538
5 1809 1854 1860 1891 192539
Nếu bạn chạy chương trình này với dữ liệu đầu vào là
5 1809 1854 1860 1891 192533 thì danh sách
5 1809 1854 1860 1891 19259 sẽ bằng
5 1809 1854 1860 1891 192535. Xin lưu ý rằng danh sách sẽ bao gồm các chuỗi, không phải số. Nếu bạn muốn lấy danh sách các số, bạn phải chuyển đổi từng mục danh sách thành số nguyên
5 1809 1854 1860 1891 192538
5 1809 1854 1860 1891 192541
Sử dụng phép thuật đặc biệt của Python - trình tạo - điều tương tự có thể được thực hiện trong một dòng
5 1809 1854 1860 1891 192538
5 1809 1854 1860 1891 192543
[Chúng tôi sẽ giải thích mã này hoạt động như thế nào trong phần tiếp theo. ] Nếu bạn muốn đọc một danh sách các số thực, bạn phải thay đổi kiểu
5 1809 1854 1860 1891 192536 thành
5 1809 1854 1860 1891 192537
Phương thức
5 1809 1854 1860 1891 192532 có một tham số tùy chọn xác định chuỗi nào sẽ được sử dụng làm dấu phân cách giữa các mục danh sách. Ví dụ: gọi phương thức
5 1809 1854 1860 1891 192539 trả về danh sách thu được bằng cách tách chuỗi ban đầu khi gặp ký tự
5 1809 1854 1860 1891 192550
5 1809 1854 1860 1891 19253____145
Trong Python, bạn có thể hiển thị danh sách các chuỗi bằng lệnh một dòng. Đối với điều đó, phương pháp
5 1809 1854 1860 1891 192551 được sử dụng; . một danh sách các chuỗi. Nó trả về chuỗi thu được bằng cách nối các phần tử đã cho và dấu phân cách được chèn vào giữa các phần tử của danh sách; . Chúng tôi biết rằng bạn đã không hiểu câu trước ngay từ lần đầu tiên. . ] Nhìn vào các ví dụ
5 1809 1854 1860 1891 19253____147
Nếu một danh sách bao gồm các số, bạn phải sử dụng ma thuật đen tối của trình tạo. Đây là cách bạn có thể in ra các thành phần của danh sách, được phân tách bằng dấu cách
5 1809 1854 1860 1891 19253____149
Tuy nhiên, nếu bạn không phải là người yêu thích ma thuật hắc ám, bạn có thể đạt được hiệu ứng tương tự bằng cách sử dụng vòng lặp
5 1809 1854 1860 1891 192538
Quảng cáo của Google, có thể dựa trên sở thích của bạn
Để tạo một danh sách chứa đầy các mục giống hệt nhau, bạn có thể sử dụng tính năng lặp lại danh sách, chẳng hạn
5 1809 1854 1860 1891 19253____11
Để tạo danh sách phức tạp hơn, bạn có thể sử dụng trình tạo. các biểu thức cho phép điền vào một danh sách theo một công thức. Hình thức chung của một máy phát điện như sau
5 1809 1854 1860 1891 19252
trong đó
5 1809 1854 1860 1891 192553 là ID của một số biến,
5 1809 1854 1860 1891 192554 là một chuỗi giá trị, lấy biến [đây có thể là một danh sách, một chuỗi hoặc một đối tượng thu được bằng cách sử dụng hàm
5 1809 1854 1860 1891 192555],
5 1809 1854 1860 1891 192556 — một số biểu thức, thường tùy thuộc vào biến . Các phần tử danh sách sẽ được điền theo biểu thức này
Dưới đây là một số ví dụ về những người sử dụng máy phát điện
Đây là cách bạn tạo danh sách
5 1809 1854 1860 1891 19250 số 0 bằng trình tạo
5 1809 1854 1860 1891 19253____14
Đây là cách bạn tạo một danh sách chứa đầy các số nguyên bình phương
5 1809 1854 1860 1891 19253____16
Nếu bạn cần điền vào danh sách các ô vuông có số từ 1 đến
5 1809 1854 1860 1891 19250, bạn có thể thay đổi cài đặt của
5 1809 1854 1860 1891 192555 thành
5 1809 1854 1860 1891 1925300
5 1809 1854 1860 1891 19253____18
Đây là cách bạn có thể nhận được một danh sách chứa đầy các số ngẫu nhiên từ 1 đến 9 [sử dụng
5 1809 1854 1860 1891 1925301 từ mô-đun
5 1809 1854 1860 1891 1925302]
5 1809 1854 1860 1891 19253____10
Và trong ví dụ này, danh sách sẽ bao gồm các dòng được đọc từ đầu vào tiêu chuẩn. đầu tiên, bạn cần nhập số phần tử của danh sách [giá trị này sẽ được sử dụng làm đối số của hàm
5 1809 1854 1860 1891 192555], thứ hai — số chuỗi đó
5 1809 1854 1860 1891 19251
5 1809 1854 1860 1891 19252
Quảng cáo của Google, có thể dựa trên sở thích của bạn
Với danh sách và chuỗi, bạn có thể thực hiện các lát cắt. cụ thể là
________ 1304 lát cắt ________ 1305 phần tử ________ 1306, ________ 1307,. ,
5 1809 1854 1860 1891 1925308
5 1809 1854 1860 1891 1925309 lát cắt
5 1809 1854 1860 1891 1925310 phần tử
5 1809 1854 1860 1891 1925306,
5 1809 1854 1860 1891 1925312,. ,
5 1809 1854 1860 1891 1925313 [nghĩa là thay đổi thứ tự của các phần tử]
5 1809 1854 1860 1891 1925314 cắt theo bước
5 1809 1854 1860 1891 1925315.
5 1809 1854 1860 1891 1925306,
5 1809 1854 1860 1891 1925317,
5 1809 1854 1860 1891 1925318,. . Nếu giá trị của
5 1809 1854 1860 1891 1925315