首页 > 解决方案 > 具有列表理解的圆形列表值,包括无

问题描述

我想四舍五入忽略无的列表的值。

给定一个没有 None 值的列表,我会这样做:

import math        
value_list = [1.5, 2.3, 3.2, 4.7]
rounded_list = [math.floor(elem) for elem in value_list]

包含 None 值的列表会给出错误:

import math        
value_list = [1.5, 2.3, None, 4.7]
rounded_list = [math.floor(elem) for elem in value_list]
TypeError: must be real number, not NoneType

我有这个解决方案,但我想知道,是否有一个单行

import math 
value_list = [1.5, 2.3, None, 4.7]

for i in range(len(value_list)):
    try:
        value_list[i] = math.floor(value_list[i])
    except:
        pass    

标签: pythonlistlist-comprehensionnonetypefloor

解决方案


选项 1. 四舍五入的值,包括无

rounded_list = [None if elem is None else math.floor(elem) for elem in value_list]

选项 2. 不带无的四舍五入值

rounded_list = [math.floor(elem) for elem in value_list if not elem is None]

推荐阅读