iT邦幫忙

0

python list reverse疑問

  • 分享至 

  • xImage
a=list(map(int,input().split()))
b=a
print(b)
a.reverse()
print(b)

輸入:

1 2

輸出:

1 2
2 1

我是把a相反
為什麼b也一起相反了?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
黃彥儒
iT邦高手 1 級 ‧ 2021-08-29 16:47:37
最佳解答

因為a = b,而list為可變物件,所以a就是b。
你要用copy方法拿到一個跟a一樣的b。
https://ithelp.ithome.com.tw/upload/images/20210829/20088395V0XVXCX4y3.png
https://ithelp.ithome.com.tw/articles/10221255

>>> a = [1, 2]
>>> b = a
>>> c = a.copy()
>>> id(a)
1927327460992
>>> id(b)
1927327460992
>>> id(c)
1927330636672
>>> a
[1, 2]
>>> b
[1, 2]
>>> c
[1, 2]
>>> c.reverse()
>>> a
[1, 2]
>>> b
[1, 2]
>>> c
[2, 1]
>>> a.reverse()
>>> a
[2, 1]
>>> b
[2, 1]
>>> c
[2, 1]
1092B0007 iT邦新手 3 級 ‧ 2021-08-30 10:29:41 檢舉

謝謝

我要發表回答

立即登入回答