def array_transformer(data, transform_type):
"""
Transforms array data based on the specified type.
Args:
data (list or array-like): The input array data.
transform_type (str): The type of transformation to apply.
Valid options: "sum", "average", "max", "min", "reverse".
Returns:
The transformed data, or None if invalid input or transform type.
"""
if not isinstance(data, (list, tuple, set)):
print("Error: Input data must be a list, tuple, or set.")
return None
if not data:
print("Error: Input data cannot be empty.")
return None
try:
data = [float(x) for x in data] # Convert elements to float for calculations.
except ValueError:
print("Error: Input data elements must be convertible to numbers.")
return None
if transform_type == "sum":
return sum(data)
elif transform_type == "average":
return sum(data) / len(data)
elif transform_type == "max":
return max(data)
elif transform_type == "min":
return min(data)
elif transform_type == "reverse":
return data[::-1] # Create reversed copy.
else:
print("Error: Invalid transform type. Valid options are 'sum', 'average', 'max', 'min', 'reverse'.")
return None
if __name__ == '__main__':
# Example Usage (manual execution)
arr1 = [1, 2, 3, 4, 5]
print(f"Original array: {arr1}")
# Sum
sum_result = array_transformer(arr1, "sum")
print(f"Sum: {sum_result}")
# Average
avg_result = array_transformer(arr1, "average")
print(f"Average: {avg_result}")
# Max
max_result = array_transformer(arr1, "max")
print(f"Max: {max_result}")
# Min
min_result = array_transformer(arr1, "min")
print(f"Min: {min_result}")
# Reverse
reverse_result = array_transformer(arr1, "reverse")
print(f"Reversed: {reverse_result}")
# Error Handling Examples
print(array_transformer("hello", "sum")) # Invalid data type
print(array_transformer([], "sum")) # Empty array
print(array_transformer([1, "a", 3], "sum")) # Non-numeric data
print(array_transformer(arr1, "invalid_type")) # Invalid transform type
Add your comment