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;
None
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]
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 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 từng phần tử của danh sách
5 1809 1854 1860 1891 19250 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
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]
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ụ
None
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]
Danh sách kết quả
5 1809 1854 1860 1891 19253 sẽ bằng
5 1809 1854 1860 1891 19254 và danh sách
5 1809 1854 1860 1891 19255 sẽ bằng
5 1809 1854 1860 1891 19256. Điều này cho phép bạn tổ chức quá trình đọc danh sách khác nhau. trước tiên, hãy 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ứ 7 của danh sách
5 1809 1854 1860 1891 1925
5 1809 1854 1860 1891 1925
None1
Bạn có thể in các phần tử của danh sách
5 1809 1854 1860 1891 19259 với
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]0; . 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
None
None3
Ở đây chỉ số
5 1809 1854 1860 1891 19257 được thay đổi, khi đó phần tử
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]2 được hiển thị
None
None5
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ỉ số bị thay đổi mà thay vào đó là giá trị của chính biến đó [ví dụ: trong vòng lặp
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]3, biến
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]4 sẽ nhận các giá trị
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]5,
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]6,
Đặ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
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]8, cung cấp một 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
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]9 [đâ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
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]8 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
None
None7
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
None2, 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. Thí dụ
None8
None9
Nếu bạn chạy chương trình này với dữ liệu đầu vào là
None3 thì danh sách
5 1809 1854 1860 1891 19259 sẽ bằng
None5. 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
None8
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]1
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
None8
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]3
[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 loại
None6 thành
None7
Phương thức
None2 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 trong danh sách. Ví dụ: gọi phương thức
None9 trả về danh sách thu được bằng cách tách chuỗi ban đầu khi gặp ký tự
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]0
None
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]5
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
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]1 đượ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ụ
None
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]7
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
None
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] print[Rainbow[0]] Rainbow[0] = 'red' print['Print the rainbow'] for i in range[len[Rainbow]]: print[Rainbow[i]]9
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 quả tương tự bằng cách sử dụng vòng lặp
a = [] for i in range[int[input[]]]: a.append[int[input[]]] print[a]8
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
None
5 1809 1854 1860 1891 19251
Để 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 đó
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]3 là ID của một số biến,
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]4 là một chuỗi giá trị nhận 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
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]5],
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]6 — 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
None
5 1809 1854 1860 1891 19254
Đâ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
None
5 1809 1854 1860 1891 19256
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
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]5 thành
None00
None
5 1809 1854 1860 1891 19258
Đâ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
None01 từ mô-đun
None02]
None
5 1809 1854 1860 1891 19250
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. trước 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
a = [1, 2, 3] b = [4, 5] c = a + b d = b * 3 print[[7, 8] + [9]] print[[0, 1] * 3]5], 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à
None04 lát cắt
None05 phần tử
None06,
None07,. ,
None08
None09 lát cắt
None10 phần tử
None06,
None12,. ,
None13 [nghĩa là thay đổi thứ tự của các phần tử]
None14 cắt theo bước
None15.
None06,
None17,
None18,. . Nếu giá trị của
None15