编写一个名为manipulate_data的函数,其作用如下

时间:2016-09-14 20:27:16

标签: python

  

当给出一个整数列表时,返回一个列表,其中第一个元素   是正数的计数,第二个元素是正数   负数。

     

注意:将0视为阳性。

为什么我的代码会带来错误

def manipulate_data(data):
    if isinstance(data, (list, tuple, set)):
        return [len([n for n in data if isinstance(n, int) and n > 0]), sum(n for n in data if isinstance(n, int) and n < 0)]

3 个答案:

答案 0 :(得分:1)

注意:如果您希望将0计为正数,则应使用>= 0

def manipulate_data(data):
    if isinstance(data, (list, tuple, set)):
        return [len([n for n in data if isinstance(n, int) and n >= 0]), sum(n for n in data if isinstance(n, int) and n < 0)]

答案 1 :(得分:1)

这应该是完美的,只是尝试了我的。

def manipulate_data(data):
    if isinstance(data, list):
        return [sum(1 for n in data if isinstance(n, int) and n >= 0), sum(n for n in data if isinstance(n, int) and n < 0)]
    else:
        return 'Only lists allowed'

如果有效,请投票,以便其他人得到帮助。

答案 2 :(得分:0)

def manipulate_data(data):
    if isinstance(data, (list, tuple, set)):
        return [len([s for s in data if isinstance(s, int) and s > 0]), sum(s for s in data if isinstance(s, int) and s < 0)]
    else:
        return 'Only lists allowed'