Pozwala krok za pomocą kodu, będziemy ?:
x = []
: Utwórz pustą listę o nazwie x
for i in range(3)
: powtórz poniższy kod trzy razy:
x = [x + x]
przypisać wartość x
do bieżącej wartości x
plus bieżącej wartości x
i owinąć że na liście.
Zasadniczo, co dzieje się w każdej iteracji jest to, że lista jest zagnieżdżony o jeden poziom, a lista wewnątrz listy aktualnie stać sub lista tej listy zagnieżdżone.
W kategoriach laika najprostszym wyjaśnieniem byłoby: - W każdej iteracji pętli for wartość zmiennej x jest ponownie przypisywana do wartości dwóch zagnieżdżonych, które mogą zawierać także dwie inne zagnieżdżone listy, w pojedynczym lista.
Oto ilustracja pokazać wartość x na każdej iteracji for
-loop:
>>> # x is empty
>>> x = []
>>>
>>> # 1st iteration
>>> x = [x + x]
>>> # x
>>> x
[[]] # your list is nested by one level
>>>
>>> # 2nd iteration
>>> x = [x + x]
>>> # x
>>> x
[[[], []]] # your list is nested by three levels
>>> # 3rd iteration
>>> x = [x + x]
>>> # x
>>> x
[[[[], []], [[], []]]] # your list is nested by four levels
>>>
Jeśli powyższa ilustracja jest zbyt zatłoczone, tutaj jest krótszy:
First iteration
Value of x: [[]]
Second iteration
Value of x: [[[], []]]
Third iteration
Value of x: [[[[], []], [[], []]]]
Znajduję również tworzenie struktury drzewa z listy zagnieżdżonej, pomaga zrozumieć, co się dzieje lepiej:
[ # 1st level
[ # second level
[ # third level
[], # fourth level
[]
],
[
[],
[] # fourth level
] # third level
] # second level
] # 1st level
wydrukuj x w pętli, aby wiedzieć, dlaczego –
Czy rozważasz zmianę nazwy swojego pytania, aby było ono bardziej szczegółowe? Myślę, że pomoże to innym użytkownikom SO, którzy szukają tego samego problemu. – perlyking