当前位置: 首页 > 编程笔记 >

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

艾令雪
2023-03-14
本文向大家介绍python面试题之列表声明实例分析,包括了python面试题之列表声明实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

 类似资料:
  • Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 4:简述解释型和编译型编程语言 5:Python的解释器种类以及相关特点? 6:位和字节的关系 7:b、B、KB、MB、GB的关系 8:PE8规范 9:通过代码实现如下转换(进制之间转换) 10:请编写一个函数实现将IP地址转换成一个整数 11、python递归的最大层数?99

  • 问题内容: 我是python的初学者,并且满足在python脚本中动态声明/创建一些列表的要求。我需要在输入4时创建4个列表对象,例如depth_1,depth_2,depth_3,depth_4。 以便它可以动态创建列表。您能为我提供解决方案吗? 感谢你在期待 问题答案: 您可以使用或进行所需的操作。 为什么不使用清单清单?

  • 本文向大家介绍JavaScript进阶(一)变量声明提升实例分析,包括了JavaScript进阶(一)变量声明提升实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript变量声明提升。分享给大家供大家参考,具体如下: 如下代码输出的结果是? Javascript代码执行分为两个大步: 预解析的过程 代码的执行过程 程序在执行过程中,会先将代码读取到内存中检查,会将所有的

  • 前言 本篇文章主要跟大家分享android中java部分高频面试题,希望大家可以点赞收藏。 Java基础部分 Java 集合 Java 多线程 更多安卓面试题会慢慢整理然后分享出来,希望能对大家面试有帮助!#面试##android面试#

  • 本文向大家介绍Python之PyUnit单元测试实例,包括了Python之PyUnit单元测试实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python之PyUnit单元测试,与erlang eunit单元测试很像,分享给大家供大家参考。具体方法如下: 1.widget.py文件如下: 2. auto.py文件如下: 3.执行结果如下: [code]jobin@jobin-deskt

  • 在Haskell中,当定义一个数据类型时,您可以选择自动派生一些实例,但我是否可以推迟自动派生,甚至可以将其放到另一个库中? 这里有一个例子: 在Haskell自动派生是一个实时节省! 最好用丢失的实例修补实际中的问题。 认为有孤立实例是不好的。实例声明最好放在定义类型类或数据类型的模块中。 在我的例子中,我不能遵循最佳实践,因为type类与数据类型无关。我怀疑type class模块和data