将值转换为整数,同时过滤包含特殊字符的字符串

时间:2017-05-24 11:52:08

标签: python string python-3.x filter

我有一长串字符串的数据,我想将它们转换为整数,但仍保留一些包含特殊字符的字符串:x.,{{1}作为字符串。可能有人帮我过滤字符串有特殊字符吗?

字符串列表:

...

预期类型:

Type  Values
str   1
str   1
str   1
str   1
str   0
str   10.0.0.21
float nan
str   0
str   38082
str   -10
str   -12
str   0xE0020000

1 个答案:

答案 0 :(得分:1)

根据您的字符串列表,您可以遍历列表并将所有数值转换为int

input_values = ['1', '1', '1', '1', 
                '0', '10.0.0.21', 
                float('nan'), '0', '38083']

def cast_to_int(word):
    if type(word) == str and word.isnumeric():
        return int(word)

    return word

list(map(cast_to_int, input_values))

更新:

如果您的input_values中有负值,则需要使用以下解决方案。

def cast_to_int(word):
    try:
        return int(word)
    except ValueError:
        return word

list(map(cast_to_int, input_values))