这篇文章主要介绍python面试题之列表声明的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体如下:
下面程序输出的结果为?
val = [['a']*2]*2 print val val[0][1]='b' print val
答案为:
[['a', 'a'], ['a', 'a']]
[['a', 'b'], ['a', 'b']]
而不是
[['a', 'a'], ['a', 'a']]
[['a', 'b'], ['a', 'a']]
请看下面的例子:
val = ['a']*2 #或者直接声明val = ['a','a'] print val print id(val) print id(val[0]) print id(val[1])
输出的结果为
['a', 'a']
39993928
38858384
38858384
可以看到val中的两个'a'是指向的同一个地址:
再看下面的代码:
直接声明的话,不会改变后面的'a'
val = [['a','a'],['a','a']] print val print id(val) print id(val[0][0]) print id(val[1][0]) val[0][0] = 'b' print val print id(val) print id(val[0][0]) print id(val[1][0])
结果为:
[['a', 'a'], ['a', 'a']]
39405512
38268560
38268560
[['b', 'a'], ['a', 'a']]
39405512
38390280
38268560
而
val = [['a','a']]*2 print val print id(val) print id(val[0][0]) print id(val[1][0]) val[0][0] = 'b' print val print id(val) print id(val[0][0]) print id(val[1][0])
结果为:
[['a', 'a'], ['a', 'a']]
40388552
39251600
39251600
[['b', 'a'], ['b', 'a']]
40388552
39373320
39373320
以上是“python面试题之列表声明的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。