Bạn có thể tạo một danh sách các số nguyên trong Python không?
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. trước tiên, hãy xem xét kích thước của danh sách và tạo danh sách từ số lượng 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à 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<0, các phần tử có thứ tự ngược lại Mỗi số 5 1809 1854 1860 1891 19257 hoặc 5 1809 1854 1860 1891 1925321 có thể bị thiếu, nghĩa là “đầu dòng” hoặc “cuối dòng" Danh sách, không giống như chuỗi, là đối tượng có thể thay đổi. bạn có thể gán một mục danh sách cho một giá trị mới. Hơn nữa, có thể thay đổi toàn bộ lát. Ví dụ 5 1809 1854 1860 1891 19253____14 Ở đây chúng tôi đã nhận được một danh sách 5 1809 1854 1860 1891 19254, sau đó cố gắng thay thế hai phần tử của lát cắt 5 1809 1854 1860 1891 1925323 bằng một danh sách mới gồm ba phần tử. Danh sách kết quả như sau. 5 1809 1854 1860 1891 1925324 5 1809 1854 1860 1891 19253____16 Và ở đây, danh sách kết quả sẽ là 5 1809 1854 1860 1891 1925325. Lý do là, 5 1809 1854 1860 1891 1925326 là danh sách các phần tử ________ 1327, ________ 1328, ________ 1329, ________ 1330 và các phần tử đó được gán lần lượt là 10, 20, 30, 40 Nếu một lát cắt không liên tục (i. e. một lát cắt có bước 5 1809 1854 1860 1891 1925315, 5 1809 1854 1860 1891 1925332) được gán một giá trị mới, khi đó số lượng phần tử trong lát cắt cũ và mới nhất thiết phải trùng khớp, nếu không sẽ xảy ra lỗi 5 1809 1854 1860 1891 1925333 Lưu ý rằng 5 1809 1854 1860 1891 1925306 là một mục danh sách, không phải một lát Quảng cáo của Google, có thể dựa trên sở thích của bạn Bạn có thể dễ dàng thực hiện nhiều thao tác khác nhau với danh sách Kiểm tra xem một mục trong danh sách. Trả về Đúng hoặc Sai Phần tử nhỏ nhất của danh sách Phần tử lớn nhất trong danh sách Chỉ số xuất hiện đầu tiên của phần tử x trong danh sách; |