我有一长串字符串的数据,我想将它们转换为整数,但仍保留一些包含特殊字符的字符串: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
答案 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))