我应该编写一个名为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')
答案 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)