相关疑难解决方法(0)

获取字符串中数值列表的最简洁方法

获取字符串中数值列表的最简洁方法是什么?

例如:

string = 'version_4.11.2-2-1.4'
array  = [4, 11, 2, 2, 1, 4]
Run Code Online (Sandbox Code Playgroud)

您可能理解,我需要比较版本.

"最干净",我的意思是尽可能简单/简短/可读.

另外,如果可能的话,我更喜欢内置函数而不是regexp(import re).

这是我到目前为止所得到的,但我觉得它很笨拙:

array = [int(n) for n in ''.join(c if c.isdigit() else ' ' for c in string).split()]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我无法在SO上找到答案:

谢谢

python string

2
推荐指数
2
解决办法
244
查看次数

在python中过滤文本中的数值

我知道我可以使用正则表达式在python中过滤数字中的文本,但这是最好的方法吗?

说我有一个字符串列表:

a="gamma function: 78"
b="factorial value: 120"
c="random number: 33"
Run Code Online (Sandbox Code Playgroud)

是否有一个很好的功能,可以做到以下几点?

for string in [a,b,c]:
    return numbers(string)
78
120
33
Run Code Online (Sandbox Code Playgroud)

python regex

1
推荐指数
1
解决办法
1220
查看次数

如何将字符串中的所有数字映射到Python中的列表?

说我有一个字符串

"There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)"  
Run Code Online (Sandbox Code Playgroud)

我希望能够将数字动态提取到列表中:[34, 0, 4, 5].
有没有一种简单的方法在Python中执行此操作?

换句话说,
有没有办法提取由任何分隔符分隔的连续数字簇?

python string

1
推荐指数
1
解决办法
273
查看次数

如何提取字符串中的第一个数字 - Python

如何删除字符串中第一个字母前的所有数字?例如,

myString = "32cl2"
Run Code Online (Sandbox Code Playgroud)

我希望它成为:

"cl2"
Run Code Online (Sandbox Code Playgroud)

我需要它工作任何长度的数字,所以2h2应该变成h2,4563nh3变成nh3等 编辑: 这个数字之间没有空格所以它与其他问题不一样,它特别是第一个数字,不是全部数字.

python string numbers truncate

1
推荐指数
1
解决办法
88
查看次数

如何从python中的字符串中提取包含逗号的数字

我试图找到文本中的所有数字并将它们返回到浮点数列表中。

文中:

  • 逗号用于分隔千位
  • 多个连续的数字用逗号和空格分隔
  • 数字可以附加到单词上

我的代码似乎提取了用逗号和空格分隔的数字以及附加到单词的数字。但是,它提取以逗号分隔的数字作为单独的数字

text = "30feet is about 10metre but that's 1 rough estimate several numbers are like 2, 137, and 40 or something big numbers are like 2,137,040 or something"

list(map(int, re.findall('\d+', text)))
Run Code Online (Sandbox Code Playgroud)

下面的建议效果很好

不幸的是,下面的输出返回一个字符串:

nums = re.findall(r'\b\d{1,3}(?:,\d{3})*(?:\.\d+)?(?!\d)', text)
print(nums)
Run Code Online (Sandbox Code Playgroud)

我需要将输出作为浮点数列表返回,中间有逗号,但没有语音标记。

Eg. 
extract_numbers("1, 2, 3, un pasito pa'lante Maria")
    is [1.0, 2.0, 3.0]
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的尝试还没有成功。目前,我的代码读取

def extract_numbers(text):
  nums = re.findall(r'\b\d{1,3}(?:,\d{3})*(?:\.\d+)?(?!\d)', text)
  
    return (("[{0}]".format( 
                       ', '.join(map(str, nums))))) 

extract_numbers(TEXT_SAMPLE)
Run Code Online (Sandbox Code Playgroud)

python regex

1
推荐指数
1
解决办法
2958
查看次数

从字符串中提取数字,不带空格

我有类似6M1D14M的字符串。我想从该字符串中提取所有数字。就像是:

[6, 1, 14]
Run Code Online (Sandbox Code Playgroud)

我怎么做?字符串的长度可以是任意的。介于两者之间的数字也可以是任意长度。

我已经尝试过这种方法,但是无法按照需要的方式拆分字符串。

python regex string numbers

0
推荐指数
1
解决办法
2525
查看次数

只读字符串中的数字

我看到的Q&A像这个这个,但我仍然有一个问题.

我想要的是获取一个可能包含非数字字符的字符串,我想只从该字符串中提取2个数字.所以,如果我12 ds d21a想要提取我的字符串['12', '21'].

我试过用:

import re
non_decimal = re.compile(r'[^\d.]+')
non_decimal.sub("",input())
Run Code Online (Sandbox Code Playgroud)

并喂了这个字符串12 123124kjsv dsaf31rn.结果12123124很好,但我想要非数字字符来分隔数字.

接下来我试着添加split- non_decimal.sub("",input().split()).没有帮助.

我该怎么做(假设有一种方法不包括扫描整个字符串,迭代它并"手动"提取数字)?

为了更清楚,是我想要实现的,在C中.

python regex string

-1
推荐指数
1
解决办法
1046
查看次数

有没有办法使用正则表达式从输入中获取一个或多个变量?

假设我有一个像这样输入的程序

28的东西8个2000

我想获取那个日期嵌入字符串,所以我可以得到:

day = 28
month = 8
year = 2000
Run Code Online (Sandbox Code Playgroud)

如何使用正则表达式实现此功能?

第8个月不能明确表示数字,但也写成"8月".

这不是标记为没有可选项的副本的情况.

如果我得到一个列表包含:

28的东西八月2000

通过该解决方案,我只得到[28, 2000],如果数字等于或小于12,则无法知道它是一个月还是一天.

python

-1
推荐指数
1
解决办法
29
查看次数

将字符串中的数字提取到列表中

我想将字符串中的数字提取到列表中,但也包括其他字母.

例如:

a='a815e8ef951'
Run Code Online (Sandbox Code Playgroud)

应该导致输出:

['a',815,'e',8,'f',951]
Run Code Online (Sandbox Code Playgroud)

谢谢!

python

-2
推荐指数
1
解决办法
520
查看次数

标签 统计

python ×9

string ×5

regex ×4

numbers ×2

truncate ×1