Используйте любой метод для создания плоского списка и используйте if/else
, чтобы проверить, есть ли у вас кортеж ("text", integer)
, и не сводите этот элемент.
def flatten(data):
# check if you have tuple ("text", integer)
if isinstance(data, tuple) and len(data) == 2 and isinstance(data[0], str) and isinstance(data[1], int):
# returns it as tuple with single element: (("text", integer),)
result = [data]
#print(data)
return tuple(result)
# flatten other elements
result = []
for item in data:
result += flatten(item)
return tuple(result)
data = (('int', 3), (('int', 50), (('int', 4), ('int', 99))))
data = flatten( data )
print(data)
Результат:
(('int', 3), ('int', 50), ('int', 4), ('int', 99))