将空字符串转换为零

Bob*_*Bob 3 python string io casting

我正在做这样的事情来总结从头到尾的所有值.

big_list = line.split(delim)
sum( [int(float(item)) for item in big_list[start:end]] )
Run Code Online (Sandbox Code Playgroud)

有时元素big_list可能为空,在这种情况下转换失败.我可以用优雅的方式使空字符串工作,而不会在上面改变太多吗?

jon*_*rpe 6

假设空元素应为零:

sum(int(float(item)) for item in big_list[start:end] if item)
                                                   # ^ skip over ""
Run Code Online (Sandbox Code Playgroud)

注意:

  1. sum可以将生成器表达式作为参数,不需要构建列表; 和
  2. 空字符串""计算False-y,因此这相当于if item != "".