簡體   English   中英

如何從字符串列表中提取數字

[英]How to extract numbers from list of strings

List1 = ["rob12is34","jimmy56is78"]

我想要 output 作為

Output = ["1234","5678"]

如果您給出了答案,請解釋一下

使用正則表達式和re.sub

List1 = ["rob12is34","jimmy56is78"]

import re

out = [re.sub(r'\D', '', s) for s in List1]

output: ['1234', '5678']

由於它是一個列表,因此首先循環列表:

for item in List1:
    item

然后從中找出所有的數字。 為此,請循環字符串並從中查找所有數字。

output = []
from item in List1:
    digit_string = ''
    for character in item:
        if character.isdigit():
            digit_string += character

    # Then add the digit_string to your list
    output.append(digit_string)
print(output)
for item in List1:
    print("".join([x for x in item if x in "0123456789"]))

如果你可以使用正則表達式

import re

List1 = ["rob12is34","jimmy56is78"]
for s in List1:
    print(''.join(re.findall('\d+', s)))

1234
5678

使用過濾器:

List1 = ["rob12is34", "jimmy56is78"]
result = []
for i in List1:
   result.append(''.join(filter(str.isdigit, i)))

print(result)
>>>> ['1234', '5678']

這是一個帶有列表理解的緊湊解決方案:

List1 = ["rob12is34","jimmy56is78"]

["".join(filter(str.isdigit, text)) for text in List1]

>>> ['1234', '5678']

分享另一種解決問題的方法:

List1 = ["rob12is34","jimmy56is78"]

output_list = []
for item in List1:
    for s in item:
        if not s.isdigit():
            item = item.replace(s, "")
    output_list.append(item)

output_list ['1234', '5678']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM