资讯专栏INFORMATION COLUMN

python中的id()函数及读取list的例子

Lionad-Morotar / 1118人阅读

摘要:说起这个函数就需要先了解的变量存储机制了变量是动态变量,不用提前声明类型。当我们写时,解释器干了两件事情在内存中创建了一个的字符串在内存中创建了一个名为的变量,并把它指向。

id(object)

Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value.
CPython implementation detail: This is the address of the object in memory.

说起这个函数就需要先了解pyhton的变量存储机制了:
变量:是动态变量,不用提前声明类型。

当我们写:a = "ABC"时,Python解释器干了两件事情:

在内存中创建了一个"ABC"的字符串;

在内存中创建了一个名为a的变量,并把它指向"ABC"。

id(a)读取的是a的内存地址

程序范例
def addElement(_list):
    print(6,id(_list))
    _list.append(0)
    print(7,id(_list))
    return _list

if __name__=="__main__":
    list1=[1,2,3]
    print(1,id(list1))
    list2 = addElement(list1)
    print(2,list1)
    print(3,id(list1))
    print(4,list2)
    print(5,id(list2))

执行结果:

(1, 48757192L)
(6, 48757192L)
(7, 48757192L)
(2, [1, 2, 3, 0])
(3, 48757192L)
(4, [1, 2, 3, 0])
(5, 48757192L)

两个要点:

return语句返回后list1就已经变为其返回值而不是原来的值

自从定义后list1这个变量的本质就是一个内存盒子,传到函数里面的一直是这个变量本身,所以地址没变,最后返回的还是他,只是后面加了一个新值,而用a=b这种赋值方法后ab的内存地址是一致的。因此从头到尾list1,list2,_list内存地址都没变过

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43232.html

相关文章

  • Python学习笔记

    摘要:数字和字符串,不能改变对象本身,只能改变引用的指向,称为不可变数据对象。从开始,依次增加的值,直至等于或者大于将会输出。该函数输入姓名和各科的成绩,输出姓名和总共成绩。表明该参数是关键字参数,通常来讲关键字参数是放在函数参数列表的最后。 基础 局部变量与全局变量 函数中使用的变量是局部的 如果在外面的变量在函数中使用,需要加global关键字 APPLY = 100 # 全局变量 a ...

    anquan 评论0 收藏0
  • 应用Python脚本制作获取基因组测序指定位置编码序列

    此篇文章关键给大家介绍了应用Python脚本制作获取基因组测序指定位置编码序列的实例详细说明,感兴趣的小伙伴值得借鉴参考一下,也希望能有一定的帮助,祝愿大家多多的发展,尽早涨薪  前言  在基因组分析中,大家常常会有这样一个要求,便是在一个fasta文件中获取某些编码序列出去。有时候这种编码序列注定是完备的编码序列,而有时候只是为原fasta文件中某一段编码序列中的一部分。尤其是当信息量许多时,应...

    89542767 评论0 收藏0
  • Tornado数据分析数据可视化(一)

    摘要:仅值班时间及前后半个小时内打卡有效。上班下班均须打卡,缺打卡则视为未值班。分析表格我的指纹考勤机可以一次导出最多一个月的打卡记录。有一个问题是,这一个月可能横跨两个月,也可能横跨一年。分析当月当年的考勤记录同理,不过可能稍微复杂一些。 前面的话 今天公司突然有个紧急任务是读取excel表格,然后清洗并展示里面的数据。 分配给我的任务是!!! 写网页前端表单=。= 妈蛋,可是我很想...

    Simon 评论0 收藏0
  • Python标准库---4、内置函数(L-M-N-O)

    摘要:上一篇文章标准库内置函数下一篇文章标准库内置函数内置函数返回对象的长度元素个数。对表示单个字符的字符串,返回代表它码点的整数。上一篇文章标准库内置函数下一篇文章标准库内置函数 上一篇文章:Python标准库---3、内置函数(G-H-I-J-K)下一篇文章:Python标准库---5、内置函数(P-K-R) 内置函数: showImg(https://segmentfault.com...

    MartinHan 评论0 收藏0
  • Python爬虫之使用celery加速爬虫

    摘要:是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。本文将介绍如何使用来加速爬虫。本文爬虫的例子来自文章爬虫的种姿势。虽然没有这个爬虫框架和异步框架来的快,但这也可以作为一种爬虫的思路。   celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。关于celery的更多介绍及例子,笔者可以参考文章Python之celery的简...

    baihe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<