Python中的数据结构作业

时间:2016-09-15 13:00:32

标签: python

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

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

这是我的代码

def manipulate_data(data):
  if isinstance(data, (list, tuple, set)):
    #checking if its a list
    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)]

代码应该在

上进行测试
import unittest

class ManipulateDataTestCases(unittest.TestCase):
  def test_only_lists_allowed(self):
    result = manipulate_data({})
    self.assertEqual(result, 'Only lists allowed', msg='Invalid argument')

  def test_it_returns_correct_output_with_positives(self):
    result = manipulate_data([1, 2, 3, 4])
    self.assertEqual(result, [4, 0], msg='Invalid output')

  def test_returns_correct_ouptut_with_negatives(self):
    result = manipulate_data([1, -9, 2, 3, 4, -5]);
    self.assertEqual(result, [4, -14], msg='Invalid output')

3 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

这应该适用于家庭学习

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'
        class manipulateDataTestCases(unittest.TestCases):
            def test_only_lists_allowed(self):
                result=manipulate_data({})
                self.assertEqual(result,'only lists allowed',msg='invalid argument')

            def test_returns_correct_output_with_positives(self):
                result=manipulate_data([1,2,3,4])
                self.assertEqual(result,[4,0],msg='invalid output')
                pass

            def test_returns_correct_output_with_negatives(self):
                result=manipulate_data([1,-9,2,3,4,-5]);
                self.assertEqual(result,[4,-14],msg='invalid output')
                pass

        if __name__=='__main__':
            unittest.main()

答案 2 :(得分:-1)

显然,您只需在功能结束时添加以下内容:

 function filter(){
           alert(tjq('ul.category li a'));
        }

我会说它运作得很好......;)

enter image description here

enter image description here