Список Python изменится, прежде чем я скажу им об этомPython

Программы на Python
Ответить
Anonymous
 Список Python изменится, прежде чем я скажу им об этом

Сообщение Anonymous »

У меня есть список, и я хочу добавить в него элементы после его обработки

Код: Выделить всё

def f(x):
some processing including api calls and executing some command line subprocesses.
return f(x)

A = [{"a1":a1, "a2":a2 .... },{"b1":b1 ....},...,{"n1:n1...}]

def Z(A):
X = []
for a in A:
x = f(a)
X.append(x)

return X

Z(A)
Однако тогда он просто возвращает мне список f(n) из len(A) раз
добавляя операторы печати:

Код: Выделить всё

def f(x):
some processing including api calls and executing some command line subprocesses.
return f(x)

A = [{"a1":a1, "a2":a2 .... },{"b1":b1 ....},...,{"n1:n1...}]

def Z(A):
X = []
for a in A:
print(X)
x = f(a)
print(X)
X.append(x)
print(X)
return X

Z(A)
для первой итерации я получаю ожидаемый результат.

[]


[]


[f(a)]

однако для следующей итерации я получить

[f(a)]


[f(b)]


[f(b),f(b)]

и третий

[f(b),f(b)]


[f(c),f( в)]


[f(c),f(c),f(c)]
и т. д. и т. д.
Почему копирование Python происходит раньше, чем я скажи это.
Что происходит

Подробнее здесь: https://stackoverflow.com/questions/792 ... ll-them-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»