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
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
- Chuyển đổi số đã cho thành chuỗi dưới dạng str[givenNumber]. Tại sao?
- Khả năng hiểu danh sách ngắt chuỗi đã cho [được chuyển đổi từ số] thành các chữ số rời rạc như được định nghĩa là gotDigit trong chương trình
- Đã thu thập danh sách các chữ số [là danh sách các ký tự] dưới dạng CharterList và in. /li>
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
Trong khi lập trình, đôi khi chúng ta chỉ yêu cầu một loại dữ liệu nào đó và cần loại bỏ các loại dữ liệu khác. Loại sự cố này khá phổ biến trong miền Khoa học dữ liệu và vì Khoa học dữ liệu sử dụng Python trên toàn thế giới nên điều quan trọng là phải biết cách trích xuất các phần tử cụ thể. Bài viết này thảo luận về một số cách nhất định trong đó chỉ có thể trích xuất chữ số. Hãy cùng thảo luận
Phương pháp số 1. Sử dụng phép nối[] + isdigit[] + bộ lọc[]
Nhiệm vụ này có thể được thực hiện bằng cách sử dụng kết hợp các chức năng trên. Hàm filter lọc các chữ số được phát hiện bởi hàm isdigit và hàm nối thực hiện nhiệm vụ tái cấu trúc hàm nối.
Python3
The original string : g1eeks4geeks5 The digits string is : 1453
The original string : g1eeks4geeks5 The digits string is : 1454
The original string : g1eeks4geeks5 The digits string is : 1455
The original string : g1eeks4geeks5 The digits string is : 1456
The original string : g1eeks4geeks5 The digits string is : 1457____30
The original string : g1eeks4geeks5 The digits string is : 1451
The original string : g1eeks4geeks5 The digits string is : 1452
The original string : g1eeks4geeks5 The digits string is : 1453______34
The original string : g1eeks4geeks5 The digits string is : 1455
The original string : g1eeks4geeks5 The digits string is : 1456
The original string : g1eeks4geeks5 The digits string is : 1455
The original string : g1eeks4geeks5 The digits string is : 1454
The original string : g1eeks4geeks5 The digits string is : 1459
The original string : g1eeks4geeks5 The digits string is : 1450
['9', '8', '7', '6', '5', '4', '3', '2', '1']21
['9', '8', '7', '6', '5', '4', '3', '2', '1']22
['9', '8', '7', '6', '5', '4', '3', '2', '1']23
['9', '8', '7', '6', '5', '4', '3', '2', '1']24
['9', '8', '7', '6', '5', '4', '3', '2', '1']25
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
['9', '8', '7', '6', '5', '4', '3', '2', '1']27
The original string : g1eeks4geeks5 The digits string is : 1453______129
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]10
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]11
The original string : g1eeks4geeks5 The digits string is : 1455
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]13
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]14
đầu ra.
The original string : g1eeks4geeks5 The digits string is : 145
Phương pháp #2. Sử dụng lại
Các biểu thức chính quy cũng có thể được sử dụng để thực hiện tác vụ cụ thể này. Chúng tôi có thể xác định yêu cầu loại chữ số, sử dụng “\D” và chỉ các chữ số được trích xuất từ chuỗi.
Python3
The original string : g1eeks4geeks5 The digits string is : 1453
The original string : g1eeks4geeks5 The digits string is : 1454
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]17
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]18
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]19
The original string : g1eeks4geeks5 The digits string is : 1456
The original string : g1eeks4geeks5 The digits string is : 1457____30
The original string : g1eeks4geeks5 The digits string is : 1451
The original string : g1eeks4geeks5 The digits string is : 1452
The original string : g1eeks4geeks5 The digits string is : 1453______34
The original string : g1eeks4geeks5 The digits string is : 1455
The original string : g1eeks4geeks5 The digits string is : 1456
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]17
The original string : g1eeks4geeks5 The digits string is : 1454
The original string : g1eeks4geeks5 The digits string is : 1459
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 14533
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
['9', '8', '7', '6', '5', '4', '3', '2', '1']27
The original string : g1eeks4geeks5 The digits string is : 1453______129
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]10
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]11
The original string : g1eeks4geeks5 The digits string is : 1455
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]13
givenNumber = 987654321 charterList = [int[receivedDigit] for receivedDigit in str[givenNumber]] print[charterList]14
đầu ra.
The original string : g1eeks4geeks5 The digits string is : 145
Phương pháp 3. Sử dụng vòng lặp
Nhiệm vụ này được thực hiện bằng cách sử dụng vòng lặp for
Python3
The original string : g1eeks4geeks5 The digits string is : 1453
The original string : g1eeks4geeks5 The digits string is : 1454
The original string : g1eeks4geeks5 The digits string is : 14545
The original string : g1eeks4geeks5 The digits string is : 1450____747
The original string : g1eeks4geeks5 The digits string is : 14548
The original string : g1eeks4geeks5 The digits string is : 14549
The original string : g1eeks4geeks5 The digits string is : 14550
The original string : g1eeks4geeks5 The digits string is : 14551
The original string : g1eeks4geeks5 The digits string is : 14552
The original string : g1eeks4geeks5 The digits string is : 14553
The original string : g1eeks4geeks5 The digits string is : 14554
The original string : g1eeks4geeks5 The digits string is : 14553
The original string : g1eeks4geeks5 The digits string is : 14556
The original string : g1eeks4geeks5 The digits string is : 14557
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
The original string : g1eeks4geeks5 The digits string is : 1453____760
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 14562
['9', '8', '7', '6', '5', '4', '3', '2', '1']2
Phương pháp 4. Sử dụng đệ quy
Python3
The original string : g1eeks4geeks5 The digits string is : 14563
The original string : g1eeks4geeks5 The digits string is : 14564
The original string : g1eeks4geeks5 The digits string is : 14565
The original string : g1eeks4geeks5 The digits string is : 14566
The original string : g1eeks4geeks5 The digits string is : 14567
The original string : g1eeks4geeks5 The digits string is : 14568
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 14570
The original string : g1eeks4geeks5 The digits string is : 14571
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
The original string : g1eeks4geeks5 The digits string is : 14573
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
The original string : g1eeks4geeks5 The digits string is : 14556
The original string : g1eeks4geeks5 The digits string is : 14550
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 1450
The original string : g1eeks4geeks5 The digits string is : 14579
The original string : g1eeks4geeks5 The digits string is : 14500
The original string : g1eeks4geeks5 The digits string is : 14501
The original string : g1eeks4geeks5 The digits string is : 14502
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
The original string : g1eeks4geeks5 The digits string is : 14504
['9', '8', '7', '6', '5', '4', '3', '2', '1']26
The original string : g1eeks4geeks5 The digits string is : 14556
The original string : g1eeks4geeks5 The digits string is : 14546
The original string : g1eeks4geeks5 The digits string is : 14547
The original string : g1eeks4geeks5 The digits string is : 14551
The original string : g1eeks4geeks5 The digits string is : 14549
['9', '8', '7', '6', '5', '4', '3', '2', '1']23
The original string : g1eeks4geeks5 The digits string is : 14551
The original string : g1eeks4geeks5 The digits string is : 14552
The original string : g1eeks4geeks5 The digits string is : 14553
The original string : g1eeks4geeks5 The digits string is : 14571