如何使用Python从字符串中提取正整数和负整数并将其存储在列表中?

2024-06-08 04:41:46 发布

您现在位置:Python中文网/ 问答频道 /正文

输入示例:

'hi6 my name is-34 have you seen96?'

示例输出:

[6, -34, 96]

我试过:

def extractor(string):
      list1 = [n for n in string if n.isnumber()]
      print(list1)

我甚至想提取那些整数,它们也是用一些字符连接起来的


Tags: nameinyou示例forstringifis
2条回答

最简单的方法是使用正则表达式:

import re

def extractor(string):
    return [int(s) for s in re.findall(r"-?\d+", string)]
    # return [*map(int, re.findall(r"-?\d+", string))]

extractor("hi6 my name is-34 have you seen96?")
# [6, -34, 96]

-?:可选的"-"
\d+:一个或多个数字

文件:

根据用户2390182的建议,您可以使用正则表达式来解决此问题。
除此之外,更简单的正则表达式如下所示:

import re
def Extract_Numbers(Str): return re.findall('(-*[0-9]+)', Str)

print(Extract_Numbers("hi6 my name is-34 have you seen96?")) # ['6', '-34', '96']

您还可以将import语句放入函数中,使其在项目中可用。…

def Extract_Numbers(Str):
    import re
    return re.findall('(-*[0-9]+)', Str)

print(Extract_Numbers("hi6 my name is-34 have you seen96?")) # ['6', '-34', '96']

相关问题 更多 >

    热门问题