如何从字符串中提取int值?

时间:2015-11-14 16:19:49

标签: python arrays regex list integer

你好,我有list这样:

B=
["('33', '207')",
 "('33', '408')",
 "('33', '408')",
 "('33', '408')",
 "'NaN'",
 "('33', '207')"]

我想返回一个整数数组,如下所示:

B1 =
    [33, 207,
     33, 408,
     33, 408,
     33, 408,
     NaN, Nan,
     33, 408]

我正在尝试将regex用作B1[0]=re.findall(r'\d+', B[0])

3 个答案:

答案 0 :(得分:0)

只需使用拆分:

{{1}}

答案 1 :(得分:0)

谢谢丹尼尔。但是,我也可以:

B= ["('31', '265')",
 "('31', '265')",
 "('31', '265')",
 "('31', '265')",
 "('31', '265')",
 nan,
 nan,
 nan,
 nan,
 nan]

答案 2 :(得分:0)

如果项目的类型是元组,则可以使用ast.literal_eval将字符串转换为字符串数字的元组,然后使用numpy.array()array.astype()将元组转换为float数组(使用isinstance()检查类型,然后重复该项并转换为浮点类型):

>>> from ast import literal_eval
>>> import numpy as np
>>> np.array([np.array(i).astype(float) if isinstance(i,tuple) else np.repeat(np.array(i).astype(float),2) for i in map(literal_eval,B)])
array([[  33.,  207.],
       [  33.,  408.],
       [  33.,  408.],
       [  33.,  408.],
       [  nan,   nan],
       [  33.,  207.]])