Вложенные понимания списков
Вложенные списки понимания - это не что иное, как list comprehension
внутри другого list comprehension
, что очень похоже на nested for loops
.
Когда мы создаем new list
( квадратов) из элементов existing list
, используя list comprehensions
, мы пишем:
l1=[1,2,3]
l2=[i**2 for i in l1]
print(l2)
Это дает вывод :
[1, 4, 9]
Мы также можем вложить два или даже больше for loops
в это понимание.
Например:
l1=[1,2,3]
l2=[4,5,6]
l3=[[i**2,j**2] for i in l1 for j in l2]
print(l3)
Результат:
[[1, 16], [1, 25], [1, 36], [4, 16], [4, 25], [4, 36], [9, 16], [9, 25], [9, 36]]
Аналогично:
l1=[1,2]
l2=[3,4]
l3=[5,6]
l4=[[i,j,k] for i in l1 for j in l2 for k in l3]
print(l4)
Вывод:
[[1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]
Аналогично ваш код может быть переписан с помощью list comprehensions
как:
flattened = [float(val) for sublist in (row.split() for row in data) for val in sublist]
Надеюсь, это вам помогло!