2024-04-28 03:48:07 发布
网友
因此,根据duck typing advice,不建议您在python中检查类型,只需查看一个操作是成功还是失败。在这种情况下,如何对一系列(主要)数字求和,同时忽略字符串。你知道吗
sum([1,2,3,4,'']) #fails sum(filter(lambda x: type(x)==int, [1,2,3,4,''])) #bad style
我会这样做的
a = [1,2,3,4,''] print sum(x if not isinstance(x,str) else 0 for x in a)
我在这里看到两个主要的解决方案:
'missing data'
关于后处理,这里有一个使用列表理解的解决方案,另一个使用基于filter的方法:
filter
a = [1,2,3,4,''] filtered_a = [x for x in t if isinstance(x, int)] filtered_a = filter(lambda x: isinstance(x, int), a)
然后,你可以简单地做sum(filtered_a)
sum(filtered_a)
我们还可以说,您可以在处理过程中检查数据的一致性,只是不要在数组中添加字符串。你知道吗
我会这样做的
我在这里看到两个主要的解决方案:
'missing data'
的发生,可能相当复杂。如果没有更多的信息,我们在这一点上帮不了你。你知道吗'missing data'
,很简单,但它不是真正可伸缩的。你知道吗关于后处理,这里有一个使用列表理解的解决方案,另一个使用基于
filter
的方法:然后,你可以简单地做
sum(filtered_a)
我们还可以说,您可以在处理过程中检查数据的一致性,只是不要在数组中添加字符串。你知道吗
相关问题 更多 >
编程相关推荐