Question #62739

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)]
return 0
when i input this code it says test_only_lists_allowed

Failure in line 11, in test_only_lists_allowed self.assertEqual(result, 'Only lists allowed', msg='Invalid argument') AssertionError: Invalid argument

Expert's answer

Answer on Question #62739 - Programming & Computer Science - Python

Question 62739:

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)]
    return 0


When I input this code it says:

test_only_lists_allowed Failure in line 11, in test_only_lists_allowed self.assertEqual(result, 'Only lists allowed', msg='Invalid argument') AssertionError: Invalid argument.

Answer:

def manipulate_data(data):
    if isinstance(data, (list, tuple, set)): # In fact, data can be any iterable object
        if isinstance(data, list): # Data is almost certainly a list
            print('Lists are allowed')
            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)]
        if not isinstance(data, list):
            return 'Only lists allowed' # You see, data is not a list


https://www.AssignmentExpert.com

LATEST TUTORIALS
APPROVED BY CLIENTS