/ / как да превърна разбирането на този списък в цикли - python, list, list-compstanding

как мога да превърна това разбиране в списъците в за цикли - python, list, list-comprehension

Гледах в него.продукт, и в обяснението е функция, предназначена да обясни как функционира функцията. Изглежда, че цялата магия се случва тук, в цикъл през списъците: 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

Това ще отпечата същата стойност, както се изисква.