Hướng dẫn how do i extract individual numbers from a number in python? - làm cách nào để trích xuất các số riêng lẻ từ một số trong python?

Là người mới đối với Python, điều này đã gây cho tôi một số rắc rối

Đưa ra một danh sách các số nguyên như

 [2, 0, 0, 0, 0, 12, 0, 8]

Làm thế nào tôi có thể trích xuất các chữ số không phải của mỗi phần tử để tạo thành một danh sách mới

 [2,1,2,8] 

Tôi đã có ý tưởng lặp qua từng phần tử và sử dụng toán tử modulo nhưng tôi dường như không thể tìm thấy logic chính xác

Bất kỳ giúp đỡ được rất nhiều đánh giá cao

Roadrunner

25K6 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu Đồng6 gold badges36 silver badges72 bronze badges

Khi được hỏi ngày 9 tháng 5 năm 2020 lúc 17:57May 9, 2020 at 17:57

2

Cách dễ nhất, tôi nghĩ, là chuyển đổi các giá trị thành chuỗi và trích xuất các ký tự riêng biệt và chuyển đổi chúng trở lại số nguyên.

Ví dụ:

lst = [2, 0, 0, 0, 0, 12, 0, 8]

digits = []
for value in lst:
    if value != 0:
        digits.extend[map[int, str[value]]]

print[digits]

Prints:

[2, 1, 2, 8]

Đã trả lời ngày 9 tháng 5 năm 2020 lúc 18:24May 9, 2020 at 18:24

Andrej Keselyandrej KeselyAndrej Kesely

Phù bằng vàng 140K1414 gold badges41 silver badges86 bronze badges

0

Trước tiên, bạn có thể chuyển đổi tất cả các số thành danh sách các chuỗi, chuyển đổi từng chuỗi thành một số nguyên, sau đó làm phẳng kết quả bằng itertools.chain.from_iterable:

>>> from itertools import chain
>>> lst = [2, 0, 0, 0, 0, 12, 0, 8]
>>> list[chain.from_iterable[map[int, str[x]] for x in lst if x != 0]]
[2, 1, 2, 8]

Đã trả lời ngày 9 tháng 5 năm 2020 lúc 19:51May 9, 2020 at 19:51

RoadrunnerRunnerRoadRunner

25K6 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu Đồng6 gold badges36 silver badges72 bronze badges

Khi được hỏi ngày 9 tháng 5 năm 2020 lúc 17:57

Cách dễ nhất, tôi nghĩ, là chuyển đổi các giá trị thành chuỗi và trích xuất các ký tự riêng biệt và chuyển đổi chúng trở lại số nguyên.

Ví dụ:

myList = [10, 0, 0, 0, 0, 12, 0, 8]

newList = []
for i in myList:
    while i >= 10:
        newList.append[i%10]
        i = i//10
    newList.append[i]

newList = [ x for x in newList if x != 0 ]

Đã trả lời ngày 9 tháng 5 năm 2020 lúc 18:24

Andrej Keselyandrej KeselyMay 10, 2020 at 14:40

Sử dụng một vòng lặp để lặp qua chuỗi ..

Sử dụng lớp int [] để chuyển đổi từng chuỗi con thành số nguyên và nối chúng vào danh sách ..

Làm cách nào để trích xuất các giá trị số trong Python?

  • Tóm tắt: Để trích xuất số từ một chuỗi đã cho trong Python, bạn có thể sử dụng một trong các phương thức sau:.
  • Sử dụng mô -đun Regex ..
  • Sử dụng một vòng lặp để lặp qua chuỗi ..

    Sử dụng lớp int [] để chuyển đổi từng chuỗi con thành số nguyên và nối chúng vào danh sách ..

    Làm cách nào để trích xuất các giá trị số trong Python?

    Tóm tắt: Để trích xuất số từ một chuỗi đã cho trong Python, bạn có thể sử dụng một trong các phương thức sau:.

    Sử dụng mô -đun Regex ..

    Sử dụng các hàm split [] và append [] trong danh sách ..

    Python3

     [2,1,2,8] 
    
    0____11
     [2,1,2,8] 
    
    2

     [2,1,2,8] 
    
    3
     [2,1,2,8] 
    
    4
     [2,1,2,8] 
    
    5
     [2,1,2,8] 
    
    6

     [2,1,2,8] 
    
    7
     [2,1,2,8] 
    
    1
     [2,1,2,8] 
    
    9
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    0
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    1
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    2
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    3

     [2,1,2,8] 
    
    3
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    5
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    6
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    7
     [2,1,2,8] 
    
    5
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    9
    [2, 1, 2, 8]
    
    0

    Đầu ra: & nbsp;

    The original string : g1eeks4geeks5
    The digits string is : 145

    & nbsp; Phương pháp #2: Sử dụng RE & NBSP;Method #2 : Using re 

    Các biểu thức thông thường cũng có thể được sử dụng để thực hiện nhiệm vụ cụ thể này. Chúng ta có thể xác định yêu cầu loại Digit, sử dụng \ D, và chỉ các chữ số được trích xuất từ ​​chuỗi. & NBSP;

    Python3

    [2, 1, 2, 8]
    
    1
    [2, 1, 2, 8]
    
    2

     [2,1,2,8] 
    
    0____11
     [2,1,2,8] 
    
    2

     [2,1,2,8] 
    
    3
     [2,1,2,8] 
    
    4
     [2,1,2,8] 
    
    5
     [2,1,2,8] 
    
    6

     [2,1,2,8] 
    
    7
     [2,1,2,8] 
    
    1
     [2,1,2,8] 
    
    9
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    0
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    1
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    2
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    3

     [2,1,2,8] 
    
    3
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    5
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    6
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    7
     [2,1,2,8] 
    
    5
    lst = [2, 0, 0, 0, 0, 12, 0, 8]
    
    digits = []
    for value in lst:
        if value != 0:
            digits.extend[map[int, str[value]]]
    
    print[digits]
    
    9
    [2, 1, 2, 8]
    
    0

    Đầu ra: & nbsp;

    The original string : g1eeks4geeks5
    The digits string is : 145

    & nbsp; Phương pháp #2: Sử dụng RE & NBSP;

    Các biểu thức thông thường cũng có thể được sử dụng để thực hiện nhiệm vụ cụ thể này. Chúng ta có thể xác định yêu cầu loại Digit, sử dụng \ D, và chỉ các chữ số được trích xuất từ ​​chuỗi. & NBSP;

    Python3

    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    0
     [2,1,2,8] 
    
    1
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    2

    [2, 1, 2, 8]
    
    1
    [2, 1, 2, 8]
    
    2

    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    7
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    8
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    9

    The original string : g1eeks4geeks5
    The digits string is : 145
    0
     [2,1,2,8] 
    
    3
    The original string : g1eeks4geeks5
    The digits string is : 145
    2
     [2,1,2,8] 
    
    1
    The original string : g1eeks4geeks5
    The digits string is : 145
    4

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

     [2,1,2,8] 
    
    7
     [2,1,2,8] 
    
    1
    >>> from itertools import chain
    >>> lst = [2, 0, 0, 0, 0, 12, 0, 8]
    >>> list[chain.from_iterable[map[int, str[x]] for x in lst if x != 0]]
    [2, 1, 2, 8]
    
    2

    Python3

    Phương pháp 3: Sử dụng các vòng lặp:

    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    8
    The original string : g1eeks4geeks5
    The digits string is : 145
    2
     [2,1,2,8] 
    
    1
     [2,1,2,8] 
    
    1____11555776

    The original string : g1eeks4geeks5
    The digits string is : 145
    7
    The original string : g1eeks4geeks5
    The digits string is : 145
    8

    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    8
    Output:
    The original string : g1eeks4geeks5
    The digits string is : 145
    1

    The original string : g1eeks4geeks5
    The digits string is : 145
    7
     [2,1,2,8] 
    
    3
    Output:
    The original string : g1eeks4geeks5
    The digits string is : 145
    4
     [2,1,2,8] 
    
    1
    Output:
    The original string : g1eeks4geeks5
    The digits string is : 145
    6

    The original string : g1eeks4geeks5
    The digits string is : 145
    0
    The original string : g1eeks4geeks5
    The digits string is : 145
    2
     [2,1,2,8] 
    
    5
     [2,1,2,8] 
    
    1itertools.chain.from_iterable1

    The original string : g1eeks4geeks5
    The digits string is : 145
    0itertools.chain.from_iterable3

    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    0
     [2,1,2,8] 
    
    1
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    2

    itertools.chain.from_iterable7

    Phương pháp 5: Sử dụng phương thức ord [] & nbsp;

    Python3

    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    0
     [2,1,2,8] 
    
    1
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    2

    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    3
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    4
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    5
    myList = [10, 0, 0, 0, 0, 12, 0, 8]
    
    newList = []
    for i in myList:
        while i >= 10:
            newList.append[i%10]
            i = i//10
        newList.append[i]
    
    newList = [ x for x in newList if x != 0 ]
    
    6

    Các

    The original string : g1eeks4geeks5
    The digits string is : 145
    7
     [2,1,2,8] 
    
    3
    The original string : g1eeks4geeks5
    The digits string is : 145
    2
     [2,1,2,8] 
    
    1
    The original string : g1eeks4geeks5
    The digits string is : 145
    4


    Làm cách nào để nhận được các chữ số riêng lẻ từ một số trong Python?

    Điều này có thể được thực hiện khá dễ dàng nếu bạn: Sử dụng str để chuyển đổi số thành một chuỗi để bạn có thể lặp lại nó. Sử dụng danh sách hiểu để chia chuỗi thành các chữ số riêng lẻ. Sử dụng int để chuyển đổi các chữ số thành số nguyên.Use str to convert the number into a string so that you can iterate over it. Use a list comprehension to split the string into individual digits. Use int to convert the digits back into integers.

    Làm thế nào để bạn phân tách các số riêng lẻ trong Python?

    Chuỗi có thể lặp lại và số nguyên thì không, vì vậy bước đầu tiên là chuyển đổi số nguyên thành một chuỗi ...
    Sử dụng lớp str [] để chuyển đổi số nguyên thành chuỗi ..
    Sử dụng một vòng lặp để lặp qua chuỗi ..
    Sử dụng lớp int [] để chuyển đổi từng chuỗi con thành số nguyên và nối chúng vào danh sách ..

    Làm cách nào để trích xuất các giá trị số trong Python?

    Tóm tắt: Để trích xuất số từ một chuỗi đã cho trong Python, bạn có thể sử dụng một trong các phương thức sau:..
    Sử dụng mô -đun Regex ..
    Sử dụng các hàm split [] và append [] trong danh sách ..
    Sử dụng danh sách hiểu với các hàm isDigit [] và split [] ..
    Sử dụng mô -đun Num_From_String ..

    Làm cách nào để trích xuất các chữ số từ một số?

    Trích xuất các chữ số của một số rất đơn giản.Khi bạn chia số cho 10, phần còn lại là chữ số ở vị trí của đơn vị.Bạn có chữ số của mình, bây giờ nếu bạn thực hiện phân chia số nguyên trên số 10, nó sẽ cắt số bằng cách xóa chữ số bạn vừa trích xuất.When you divide a number by 10, the remainder is the digit in the unit's place. You got your digit, now if you perform integer division on the number by 10, it will truncate the number by removing the digit you just extracted.

    Bài Viết Liên Quan

    Chủ Đề