我有一个值列表,可以是像“string”这样的字符串,也可以是以字符串格式给出的数字,如“2.3”
我想将特定值的字符串转换为数字 ("N/A"->-1) 并保持任何其他字符串不变,而且我需要转换字符串中给出的数字,在 float 中格式为字符串格式 ("1.0"->1) 等等
如果我首先遍历整个列表并将 N/A 值像这样转换为 -1,我就成功了
for i in list:
if i=="N/A":
i=-1
然后运行
l = [int(i) for i in l]
但我仍然可能有字符串,除了“N/A”之外,我不想在尝试转换它们时遇到麻烦,并且需要在第二个循环中使用 try。 我怎样才能做到这一点?
这是我尝试的代码,但我给了我语法错误
l = [try: int(float(i)) except: pass] for i in l
来源列表示例:["1.0","N/A","lol"] 我需要它是 [1,-1,"lol"]
请您参考如下方法:
使用 try except ,如果发生异常并且它是 "N/A" 则尝试转换为 int 所以它应该被替换通过 -1 :
li = ["1.0" , "N/A" , "12" , "2.0", "Ok"]
for i,v in enumerate(li):
try:
li[i] = int(float((v)))
except:
if(li[i] == "N/A"):
li[i] = -1
li # [1, -1, 12, 2, "Ok"]
