繁体   English   中英

Python无法从列表列表中删除None值

[英]Python can't remove None value from list of lists

我正在尝试从我的csv文件中删除None值。 在下面的代码的第一部分中,我将空白值转换为None值,但是在我调用过滤器时,在最后一部分中,它将打印column_list,但是None值也保留了。 我需要删除它们,以便可以计算出列表中似乎不适合它们的每个的最大/最小值?

with (inFile) as f:
    _= next(f)
    list_of_lists = [[float(i) if i.strip() != '' else None for i in line.split(',')[2:]]
        for line in f]
inFile.close()

log_GDP_list = [item[0] for item in list_of_lists]
social_support_list = [item[1] for item in list_of_lists]
healthy_birth_list = [item[2] for item in list_of_lists]
freedom_choices_list = [item[3] for item in list_of_lists]
generosity_list = [item[4] for item in list_of_lists]
confidence_gov_list = [item[5] for item in list_of_lists]

column_list = []
column_list.append([log_GDP_list, social_support_list, healthy_birth_list, freedom_choices_list, generosity_list, confidence_gov_list])
res = list(filter(None, column_list)) 
print(res)

另外,仅在其中一个行列表(例如log_GDP_list)上运行过滤器时,它会删除None值,但仍然出现错误,提示我无法在float上运行max()或min()(所有值都从浮在代码的第一位的字符串)。

您目前有这样的事情

l = [
    float(i) if i.strip() != '' else None
    for i in line.split(',')[2:]
]

您想要的是:

l = [
    float(i)
    for i in line.split(',')[2:]
    if i.strip()
]

这样,当i.strip()评估为False时,该项目将根本不会添加到结果列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM