Mar-10-2019, 06:45 PM
A recursive version, be careful with dictionary keys.
test_data = ['Cities', 14, 'WACC', (32, 'KHI', 208.55567), ['Stat', 14, 'RS0'], {'one': 1, 2: [1, 2], (1, 2, 3, 4): ('this', 'that', 10)}, {1, 2, (3.0, 3.5,), 4}] def all_strings(data): if type(data) == list: items = [] for item in data: items.append(all_strings(item)) return items elif type(data) == tuple: return tuple(all_strings(list(data))) elif type(data) == dict: new_dict = {} for key, value in data.items(): new_dict[all_strings(key)] = all_strings(value) return new_dict elif type(data) == set: return set(all_strings(list(data))) else: return str(data) print(all_strings(test_data))
Output:['Cities', '14', 'WACC', ('32', 'KHI', '208.55567'), ['Stat', '14', 'RS0'], {'one': '1', '2': ['1', '2'], ('1', '2', '3', '4'): ('this', 'that', '10')}, {'4', '2', '1', ('3.0', '3.5')}]