Skip to main content
 首页 » 编程设计

python之使用 "try"进行列表循环操作

2025年05月04日26kenshinobiy

我有一个值列表,可以是像“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"]