Найти - Пользователи
Полная версия: почему не изменяется значения в исходном списке?
Начало » Python для новичков » почему не изменяется значения в исходном списке?
1
pupkin2
всем привет.
такой код:
l = ["A = {A}", "B = {B}"]
for it in l:
it = it.format(A="a", B="b")

print l
http://liveworkspace.org/code/ac0b2b421aaf693e65256906974cd2be

выводит это:
почему?

спасибо.
o7412369815963
http://liveworkspace.org/code/f221c425b40ab3096418fad7086aa38e

т.к. изменения записываются в локальную переменную it, а не в массив l
pupkin2
o7412369815963
изменения записываются в локальную переменную it, а не в массив l
хм.. а я думал, что it в моем примере это ссылка на элементы списка.

а для пайтон 3.2 это так же записывается? может быть есть более естественный способ?
cutwater
pupkin2
o7412369815963
изменения записываются в локальную переменную it, а не в массив l
хм.. а я думал, что it в моем примере это ссылка на элементы списка.

а для пайтон 3.2 это так же записывается? может быть есть более естественный способ?
Да ссылка. Когда вы присваиваете it новое значение, вы переписываете ссылку.
pupkin2
cutwater
Когда вы присваиваете it новое значение, вы переписываете ссылку.
в смысле “переписываем”?
в смысле что переписываем значение на которое указывает ссылка, или в смысле что переписываем саму ссылку в результате чего создается новый объект?
o7412369815963
pupkin2
o7412369815963
изменения записываются в локальную переменную it, а не в массив l
хм.. а я думал, что it в моем примере это ссылка на элементы списка.

а для пайтон 3.2 это так же записывается? может быть есть более естественный способ?
l = ["A = {A}", "B = {B}"]

print map(lambda it:it.format(A="a", B="b"), l)
pupkin2
o7412369815963, спасибо. это и вправду естественней выглядит.
cutwater
pupkin2
в смысле “переписываем”?
в смысле что переписываем значение на которое указывает ссылка, или в смысле что переписываем саму ссылку в результате чего создается новый объект?
it = it.format(A=“a”, B=“b”)

В смысле после этой строки ссылка it указывает уже не на элемент списка, а на новый объект, который вернул метод format.
pupkin2
cutwater, так это второе.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB