Làm thế nào để bạn tìm thấy một chữ số riêng lẻ trong python?

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

    • 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 : 145
    3

    The original string : g1eeks4geeks5
    The digits string is : 145
    4

    The original string : g1eeks4geeks5
    The digits string is : 145
    5

     

    The original string : g1eeks4geeks5
    The digits string is : 145
    6

    The original string : g1eeks4geeks5
    The digits string is : 145
    7____30
    The original string : g1eeks4geeks5
    The digits string is : 145
    1

     

    The original string : g1eeks4geeks5
    The digits string is : 145
    2

    The original string : g1eeks4geeks5
    The digits string is : 145
    3______34
    The original string : g1eeks4geeks5
    The digits string is : 145
    5
    The original string : g1eeks4geeks5
    The digits string is : 145
    6

     

    The original string : g1eeks4geeks5
    The digits string is : 145
    5

    The original string : g1eeks4geeks5
    The digits string is : 145
    4

    The original string : g1eeks4geeks5
    The digits string is : 145
    9
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    ['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 : 145
    3______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 : 145
    5
    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 : 145
    3

    The original string : g1eeks4geeks5
    The digits string is : 145
    4

    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 : 145
    6

    The original string : g1eeks4geeks5
    The digits string is : 145
    7____30
    The original string : g1eeks4geeks5
    The digits string is : 145
    1

     

    The original string : g1eeks4geeks5
    The digits string is : 145
    2

    The original string : g1eeks4geeks5
    The digits string is : 145
    3______34
    The original string : g1eeks4geeks5
    The digits string is : 145
    5
    The original string : g1eeks4geeks5
    The digits string is : 145
    6

     

    givenNumber = 987654321
    charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
    print(charterList)
    
    17

    The original string : g1eeks4geeks5
    The digits string is : 145
    4

    The original string : g1eeks4geeks5
    The digits string is : 145
    9
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    33

    ['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 : 145
    3______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 : 145
    5
    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 : 145
    3

    The original string : g1eeks4geeks5
    The digits string is : 145
    4

    The original string : g1eeks4geeks5
    The digits string is : 145
    45
    The original string : g1eeks4geeks5
    The digits string is : 145
    0____747

    The original string : g1eeks4geeks5
    The digits string is : 145
    48

    The original string : g1eeks4geeks5
    The digits string is : 145
    49
    The original string : g1eeks4geeks5
    The digits string is : 145
    50
    The original string : g1eeks4geeks5
    The digits string is : 145
    51
    The original string : g1eeks4geeks5
    The digits string is : 145
    52

    The original string : g1eeks4geeks5
    The digits string is : 145
    53
    The original string : g1eeks4geeks5
    The digits string is : 145
    54

    The original string : g1eeks4geeks5
    The digits string is : 145
    53
    The original string : g1eeks4geeks5
    The digits string is : 145
    56
    The original string : g1eeks4geeks5
    The digits string is : 145
    57

    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    26
    The original string : g1eeks4geeks5
    The digits string is : 145
    3____760
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    62

    ['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 : 145
    63

    The original string : g1eeks4geeks5
    The digits string is : 145
    64

    The original string : g1eeks4geeks5
    The digits string is : 145
    65

     

    The original string : g1eeks4geeks5
    The digits string is : 145
    66

    The original string : g1eeks4geeks5
    The digits string is : 145
    67
    The original string : g1eeks4geeks5
    The digits string is : 145
    68
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    70
    The original string : g1eeks4geeks5
    The digits string is : 145
    71

    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    26
    The original string : g1eeks4geeks5
    The digits string is : 145
    73

    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    26
    The original string : g1eeks4geeks5
    The digits string is : 145
    56
    The original string : g1eeks4geeks5
    The digits string is : 145
    50
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    79
    The original string : g1eeks4geeks5
    The digits string is : 145
    00

    The original string : g1eeks4geeks5
    The digits string is : 145
    01
    The original string : g1eeks4geeks5
    The digits string is : 145
    02

    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    26
    The original string : g1eeks4geeks5
    The digits string is : 145
    04

    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    26
    The original string : g1eeks4geeks5
    The digits string is : 145
    56
    The original string : g1eeks4geeks5
    The digits string is : 145
    46
    The original string : g1eeks4geeks5
    The digits string is : 145
    47
    The original string : g1eeks4geeks5
    The digits string is : 145
    51
    The original string : g1eeks4geeks5
    The digits string is : 145
    49
    ['9', '8', '7', '6', '5', '4', '3', '2', '1']
    
    23
    The original string : g1eeks4geeks5
    The digits string is : 145
    51
    The original string : g1eeks4geeks5
    The digits string is : 145
    52
    The original string : g1eeks4geeks5
    The digits string is : 145
    53
    The original string : g1eeks4geeks5
    The digits string is : 145
    71