[英]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.