Untitled
unknown
python
a year ago
1.0 kB
12
Indexable
from typing import Union, Optional, List, Dict, Tuple, Callable, Any Number = Union[int, float] StrOrNone = Optional[str] JsonDict = Dict[str, Any] def process_data(data: List[Union[str, int, float]], transform: Optional[Callable[[Number], Number]] = None) -> Tuple[JsonDict, StrOrNone]: result: JsonDict = {'processed': []} for item in data: if isinstance(item, (int, float)): item = transform(item) if transform else item result['processed'].append(item) elif isinstance(item, str): result['processed'].append(item.upper()) else: raise ValueError("Unsupported data type") message: StrOrNone = "Processing complete" if result['processed'] else None return result, message if __name__ == "__main__": sample_data = [1, 2.5, 'hello', 3] processed, msg = process_data(sample_data, transform=lambda x: x * 2) print(processed) # {'processed': [2, 5.0, 'HELLO', 6]} print(msg) # Processing complete
Editor is loading...
Leave a Comment