|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class Solution(object):
def HuiWen(self,num):
old = list(num)
print(old)
new = list(num)
new.reverse()
print(old)
print(new)
if old == new:
print('回文')
else:
print('不是回文')
tt = Solution()
tt.HuiWen('789')
输出结果是:
['7', '8', '9']
['7', '8', '9']
['9', '8', '7']
不是回文
不明白的是,reverse()会对列表的元素进行反向排序,那么old为什么还是【7,8,9】呢?是涉及深拷贝浅拷贝吗?
我理解的是,new和old都指向了list(num)这个对象,然后反转了new, new和old都应该反向排序,为什么只有new变化了呢?
可能自己也没说清楚,希望大家帮我一下。谢谢。
本帖最后由 sky 于 2018-1-31 10:59 编辑
你的old和new是两份num的拷贝了 他们两个已经没有关系了
reverse确实改变了new 但是对old是没有影响的 更别提num了
你可以输出他们的id看看 他们都是不同的对象了
- class Solution(object):
-
- def HuiWen(self,num):
- old = list(num)
- print("old id", id(old))
- new = list(num)
- new.reverse()
- print("old id", id(old))
- print("new id", id(new))
- print("num id", id(num))
- if old == new:
- print('回文')
- else:
- print('不是回文')
- tt = Solution()
- tt.HuiWen('789')
复制代码
|
|