странный питон "вложенный" для цикла - PullRequest
0 голосов
/ 09 февраля 2019

Я сталкиваюсь со следующими циклами for в чужом проекте, и никогда раньше не видел подобного синтаксиса.Это похоже на мутацию вложенного цикла for, но не совсем так.Во всяком случае, как я должен интерпретировать эту строку кода?Или как мне развернуть этот цикл?

for a in [np.transpose(np.array([list(B['v'][x]) + [0,1] for x in (face[0], face[1], face[2])]))  for face in B['shape']]:
    facets.extend([np.do(r) * scale for x in inflate(a)])

1 Ответ

0 голосов
/ 09 февраля 2019

Содержимое выражения np.array:

[list(B['v'][x]) + [0,1] for x in (face[0], face[1], face[2])]

Ссылаясь на вышеприведенное как *, содержимое внешнего списка, который повторяется:

[np.transpose(np.array(*)) for face in B['shape']]

Преобразование каждого понимания списка в цикл for:

for face in B['shape']:
    y = [] # temporary variable
    for x in (face[0], face[1], face[2]):
        y.append(list(B['v'][x]) + [0, 1])

    # outer loop variable
    a = np.transpose(np.array(y)) 

    z = [] # temporary variable
    for x in inflate(a):
        z.append(np.do(r) * scale)
    facets.extend(z)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...