千家信息网

python面试题之列表声明的示例分析

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍python面试题之列表声明的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:下面程序输出的结果为?val = [['a']*2]*2print
千家信息网最后更新 2025年01月18日python面试题之列表声明的示例分析

这篇文章主要介绍python面试题之列表声明的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体如下:

下面程序输出的结果为?

val = [['a']*2]*2print valval[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 valprint id(val)print id(val[0])print id(val[1])

输出的结果为

['a', 'a']
39993928
38858384
38858384

可以看到val中的两个'a'是指向的同一个地址:

再看下面的代码:

直接声明的话,不会改变后面的'a'

val = [['a','a'],['a','a']]print valprint id(val)print id(val[0][0])print id(val[1][0])val[0][0] = 'b'print valprint 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']]*2print valprint id(val)print id(val[0][0])print id(val[1][0])val[0][0] = 'b'print valprint 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面试题之列表声明的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0