Форум сайта python.su
1
всем привет.
такой код:
l = ["A = {A}", "B = {B}"]
for it in l:
it = it.format(A="a", B="b")
print lОфлайн
32
http://liveworkspace.org/code/f221c425b40ab3096418fad7086aa38e
т.к. изменения записываются в локальную переменную it, а не в массив l
Офлайн
1
o7412369815963хм.. а я думал, что it в моем примере это ссылка на элементы списка.
изменения записываются в локальную переменную it, а не в массив l
Офлайн
19
pupkin2Да ссылка. Когда вы присваиваете it новое значение, вы переписываете ссылку.o7412369815963хм.. а я думал, что it в моем примере это ссылка на элементы списка.
изменения записываются в локальную переменную it, а не в массив l
а для пайтон 3.2 это так же записывается? может быть есть более естественный способ?
Офлайн
1
cutwaterв смысле “переписываем”?
Когда вы присваиваете it новое значение, вы переписываете ссылку.
Офлайн
32
pupkin2o7412369815963хм.. а я думал, что it в моем примере это ссылка на элементы списка.
изменения записываются в локальную переменную it, а не в массив l
а для пайтон 3.2 это так же записывается? может быть есть более естественный способ?
l = ["A = {A}", "B = {B}"]
print map(lambda it:it.format(A="a", B="b"), l)Офлайн
1
o7412369815963, спасибо. это и вправду естественней выглядит.
Офлайн
19
pupkin2it = it.format(A=“a”, B=“b”)
в смысле “переписываем”?
в смысле что переписываем значение на которое указывает ссылка, или в смысле что переписываем саму ссылку в результате чего создается новый объект?
Офлайн
1
cutwater, так это второе.
Офлайн