Используйте функцию, чтобы сначала сгладить список, а затем распечатать новый список.
def flatten(original, iterables=[list]):
out = []
for val in original:
if type(val) not in iterables:
out.append(val)
else:
out += flatten(val)
return out
print(flatten(arr))
Здесь я явно указываю type(val) != list
, чтобы он не пытался разделить ваши строки, но сгладил подсписки. Кроме того, этот метод будет обрабатывать вложенные списки любой глубины.
Результат:
>>> print(flatten(arr))
[0, 'txt', 4, 5, 3, 4, 2]
Вы также можете передать второй аргумент iterables
, который представляет собой список, содержащий итерационные типы, которые вы хотите сгладить. Это может включать list
, tuple
или что-либо еще. Здесь я по умолчанию использую list
, так как этого требует ваш пример.