Khả năng hiểu danh sách cung cấp chức năng mạnh mẽ trong python để viết mã trong một dòng và đạt được kết quả mong muốn Show
Chúng ta đã xem qua một ví dụ mã chứng minh việc tách các số bằng vòng lặp for. Bây giờ chúng ta sẽ viết lại chương trình tương tự bằng cách sử dụng các kỹ thuật hiểu và hiểu danh sách givenNumber = 987654321 charterList = [receivedDigit for receivedDigit in str(givenNumber)] print(charterList) Kết quả ['9', '8', '7', '6', '5', '4', '3', '2', '1'] Giải trình
Bây giờ chúng tôi đã nhận được một danh sách các ký tự riêng lẻ thay vì danh sách các số riêng lẻ được mong đợi là. Chính xác? Chỉ cần chuyển đổi ký tự thành int trong phạm vi hiểu danh sách. Đây là mã trình diễn dễ đọc givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList) Ở đây int(receivedDigit) chuyển đổi từng ký tự qua phép lặp và đầu ra cuối cùng trở thành danh sách các số riêng lẻ như mong đợi như bên dưới Nhận một số dương từ người dùng và in từng chữ số của một số ví dụ 1số = 12 đầu ra 2 1 ví dụ 2số = 123 đầu ra 3 2 1 Hãy thiết kế một logicsố = 12 Đầu tiên chúng ta hãy suy nghĩ, làm thế nào để tách chữ số cuối cùng 2 từ số 12 Vì các số là số thập phân (cơ số 10), phạm vi của mỗi chữ số phải từ 0 đến 9 Vì vậy, chúng ta có thể dễ dàng thực hiện bằng cách thực hiện modulo 10 Giống, 12 % 10 => 2 ( ta đã tách chữ số 2 từ số 12) Bây giờ, chúng ta phải tách chữ số 1 từ số 12 Điều này có thể đạt được bằng cách chia số cho 10 và lấy modulo 10 Giống, 12/10 => 1 Bây giờ lấy modulo 10 1 % 10 = 1 Sử dụng phương pháp trên, chúng ta có thể tách từng chữ số từ một số Hợp lýCho đến khi số trở thành 0 làm Lấy số % 10 và in kết quả Chia số đó cho 10. (số = số / 10) Thí dụHãy lấy num = 123 Bước 1Num = 123 (không bằng 0) Mod = 123% 10 ==> 3 Số = 123/10 ==> 12 Bước 2Num = 12 (không bằng 0) Mod = 12% 10 ==> 2 Số = 12/10 ==> 1 Bước 3Num = 1 (không bằng 0) Chế độ = 1% 10 ==> 1 Số = 1/10 ==> 0 Bước 4Num = 0 (bằng 0, dừng quá trình) Giải thích bằng hình ảnhChương trìnhThí dụ /***************************** *Program : split the digits * *Language : C * *****************************/ #include int main() { int num; scanf("%d",&num); while(num > 0) //do till num greater than 0 { int mod = num % 10; //split last digit from number printf("%d\n",mod); //print the digit. num = num / 10; //divide num by 10. num /= 10 also a valid one } return 0; } chạy nó Chủ đề bạn có thể thíchHiểu danh sách là một cách ngắn gọn và duyên dáng hơn nhiều để tạo danh sách sẽ được hình thành dựa trên các giá trị đã cho của danh sách đã tồn tại Trong phương pháp này, các hàm givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)8 và givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)9 cũng được sử dụng cùng với khả năng hiểu Danh sách để chia số nguyên thành các chữ số. Các hàm givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)8 và givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)9 được sử dụng để chuyển đổi một số thành một chuỗi và sau đó thành một số nguyên tương ứng Đoạn mã sau sử dụng khả năng hiểu danh sách để chia một số nguyên thành các chữ số trong Python
đầu ra Đầu tiên, số /***************************** *Program : split the digits * *Language : C * *****************************/ #include int main() { int num; scanf("%d",&num); while(num > 0) //do till num greater than 0 { int mod = num % 10; //split last digit from number printf("%d\n",mod); //print the digit. num = num / 10; //divide num by 10. num /= 10 also a valid one } return 0; }2 được chuyển đổi thành một chuỗi bằng cách sử dụng givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)8 trong đoạn mã trên. Sau đó, tính năng hiểu danh sách được sử dụng để ngắt chuỗi thành các chữ số rời rạc. Cuối cùng, các chữ số được chuyển đổi trở lại thành số nguyên bằng hàm givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)9 Sử dụng Hàm import math n = 13579 x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)] print(x) 2 và import math n = 13579 x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)] print(x) 3 để chia một số nguyên thành các chữ số trong PythonThao tác tách số nguyên thành các chữ số trong Python có thể được thực hiện mà không cần chuyển đổi số thành chuỗi trước. Hơn nữa, phương pháp này nhanh gấp đôi so với chuyển đổi nó thành một chuỗi trước tiên Hàm 2 làm tròn một số thành một số nguyên. Hàm 3 cung cấp logarit tự nhiên của một số. Để sử dụng cả hai chức năng này, chúng ta nên nhập thư viện 6Mô-đun 6 có thể được định nghĩa là mô-đun tiêu chuẩn và luôn có thể truy cập được trong Python. Nó cung cấp quyền truy cập vào các chức năng thư viện C cơ bảnĐoạn mã sau sử dụng khả năng hiểu danh sách, các hàm 2 và 3 để chia một số nguyên thành các chữ số trong Python
đầu ra Sử dụng Hàm ['9', '8', '7', '6', '5', '4', '3', '2', '1'] 40 và ['9', '8', '7', '6', '5', '4', '3', '2', '1'] 41 để tách một số nguyên thành các chữ số trong PythonHàm ['9', '8', '7', '6', '5', '4', '3', '2', '1']40 thực hiện một chức năng đã nêu cho mọi mục trong một lần lặp. Mục này sau đó được ký gửi làm tham số cho chức năng Phương thức ['9', '8', '7', '6', '5', '4', '3', '2', '1']43, như tên gợi ý, được sử dụng để tách một chuỗi thành một danh sách. Nó có một cú pháp cơ bản và chứa hai tham số, ['9', '8', '7', '6', '5', '4', '3', '2', '1']44 và ['9', '8', '7', '6', '5', '4', '3', '2', '1']45 Số cần phải ở định dạng chuỗi để phương pháp này có thể được sử dụng Đoạn mã sau sử dụng các hàm ['9', '8', '7', '6', '5', '4', '3', '2', '1']40 và ['9', '8', '7', '6', '5', '4', '3', '2', '1']41 để chia một số nguyên thành các chữ số trong Python ['9', '8', '7', '6', '5', '4', '3', '2', '1']4 đầu ra Ở đây, chúng tôi đã sử dụng phương pháp ['9', '8', '7', '6', '5', '4', '3', '2', '1']41 để chia số đã cho ở định dạng chuỗi thành danh sách các chuỗi chứa mọi số. Sau đó, hàm ['9', '8', '7', '6', '5', '4', '3', '2', '1']40 được sử dụng, được sử dụng để tạo đối tượng bản đồ chuyển đổi từng chuỗi thành số nguyên. Cuối cùng, givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)50 được sử dụng để tạo danh sách từ đối tượng bản đồ Sử dụng Vòng lặp givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList) 51 để chia một số nguyên thành các chữ số trong PythonTrong phương pháp này, chúng tôi sử dụng một vòng lặp và thực hiện kỹ thuật cắt cho đến khi số chữ số được chỉ định (trong trường hợp này là givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)52) và cuối cùng, sử dụng hàm givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList)9 để chuyển đổi thành một số nguyên |