mixlist = [[(0, 500), (755, 1800)], [2600, 2900], [4900, 9000], [(11000, 17200)]]
# [[0, 500], [755, 1800], [2600, 2900], [4900, 9000], [11000, 17200]]
experiment = [list(n) if isinstance(n, tuple) else [n] for sub in mixlist for n in sub]
Я попробовал две версии понимания списка ниже.Вышеупомянутая и другая альтернатива, где
experiment = [list(n) if isinstance(n, tuple) else list(n) for sub in mixlist for n in sub]
Это выражение выдает следующую ошибку:
TypeError: Argument of type 'int' is not iterable.
Разница между этими двумя выражениями заключается в использовании литерала списка, [] и функции списка, ().
list_literal = [n] # Gives a list literal [n]
ls = list(n) # Iterate over n's items and produce a list from that.
Например:
>>> n = (1,2,3)
>>> list_literal = [n]
>>> list_literal
[(1, 2, 3)]
>>> n = (1,2,3)
>>> list_literal = list(n)
>>> list_literal
[1, 2, 3]