我是一名網絡工程師,嘗試將Python編程學習爲一項工作要求。Python變量賦值更改值
我寫了下面
#Funtion此代碼砍第一和最後一個項目在列表中
def chop(t):
t.pop(0) and t.pop(len(t)-1)
return t
當我運行就行了t時的功能,並將其分配給一個變量一個。 a在函數執行後得到列表的其餘部分,並且a成爲一個新列表。這是完美的。
>>> t = ['a', 'b', 'c', 'd', 'e' ,'f','g','h','i','j','k','l']
>>> a=chop(t)
>>> a
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
>>>
後來當我嘗試它工作得很好,但是a的值也變爲打印印章(t)的輸出,而我沒有通過函數印章(t)的運行變量。有人能解釋爲什麼會發生這種情況?
>>> print chop(t)
['c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
>>> a
['c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
問候 Umesh製作
你不復制你的列表,所以'a'和't'指向同一個列表。如果你改變一個,他們都被改變了。 – khelwood
你可能會發現這篇文章有用:[關於Python名稱和值的事實和神話](http://nedbatchelder.com/text/names.html),這是由SO老將Ned Batchelder編寫的。另請參閱[其他語言具有「變量」,Python具有「名稱」](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables)簡短的總結與好的圖表。 –
你應該看看這個SO [文章](http://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list) – latsha