Гледах в него.продукт, и в обяснението е функция, предназначена да обясни как функционира функцията. Изглежда, че цялата магия се случва тук, в цикъл през списъците: result = [x + [y] за x в резултата за y в списъка]. Затова реших да се опитам да създам няколко контура, за да мога по-лесно да следя точно какво се случва. Промених функцията на примера на това:
lists = [[1, 2], [3, 4], [5, 6]]
result = [[]]
for l in lists:
result = [x+[y] for x in result for y in l]
print result
И резултатът е това, което очаквах. Въпреки това, когато се опитах да го счупи в за цикли, в крайна сметка се получи спота с цикъла чрез резултата, докато го променя (което прочетох не трябва да направя).
lists = [[1, 2], [3, 4], [5, 6]]
result = [[]]
for l in lists:
for i in result:
for y in l:
result.append([i+[y]])
print result
Как бихте пресъздали разбирането на списъка с цикли в този случай?
Отговори:
6 за отговор № 1Добавете временен списък, който съдържа вашите междинни списъци. Това е така, защото списък на разбирането напълно изпълнява и след това отново записва стойността на result
.
Малък код може да бъде демонстриран както следва
result = [[]]
for l in lists:
tmp = []
for x in result:
for y in l:
tmp.append(x+[y])
result = tmp
Това ще отпечата същата стойност, както се изисква.