将空字符串转换为零

3 投票
1 回答
3426 浏览
提问于 2025-04-18 17:49

我正在做类似这样的事情,目的是把从开始到结束的所有值加起来。

big_list = line.split(delim)
sum( [int(float(item)) for item in big_list[start:end]] )

有时候,big_list中的某个元素可能是空的,这样的话转换就会失败。我能否用一种优雅的方式处理空字符串,而不需要对上面的代码做太多改动呢?

1 个回答

6

假设空的元素应该算作零:

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

注意:

  1. sum 函数可以直接接受生成器表达式作为参数,不需要先创建一个列表;
  2. 一个空字符串 "" 在判断时会被看作是 False,所以这相当于 if item != ""

撰写回答