博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python数据结构(三)
阅读量:4673 次
发布时间:2019-06-09

本文共 1634 字,大约阅读时间需要 5 分钟。

copy 复制对象,copy模块包含了两个行数copy和deepcopy,用于复制现有的对象

浅副本(浅复制)

copy()创建的浅副本是一个新容器,其中填充了原对象内容的引用

import copy    class MyClass:    def __init__(self,name):        self.name = name    def __cmp__(self, other):        return cmp(self.name,other.name)a = MyClass('a')my_list = [a]dup =copy.copy(my_list)#对于浅副本不会复制MyClass实例,所以dup列表中的引用会指向my_list相同的对象print(my_list)print(dup)print(dup is my_list)print(dup == my_list)print(dup[0] is my_list[0])print(dup[0] == my_list[0])结果:[<__main__.MyClass object at 0x000001E84E5B93C8>][<__main__.MyClass object at 0x000001E84E5B93C8>]FalseTrueTrueTrue

deepcopy()创建的深副本(深复制)是一个新的容器,其中填充原对象的内容的副本

#dup =copy.copy(my_list)dup =copy.deepcopy(my_list)结果[<__main__.MyClass object at 0x0000028C5A7B93C8>][<__main__.MyClass object at 0x0000028C5A8433C8>]FalseFalseFalseFalse

定制复制行为,可以使用特殊方法__copy__()和__deepcopy__()来控制如何建立副本。

 

pprint美观打印数据结构,用于生成数据结构的美观视图,便于人类阅读。

#打印from pprint import pprintdata = [(1,{
'a':'A','b':'B','c':'C','d':'D'}), (2,{
'e':'e','f':'f','g':'g','a':'A','b':'B','c':'C','d':'D','h':'h','i':'i','j':'j'}) ]#格式化一个对象,并把它写入到一个数据流,使用参数width调整格式化文本的宽度(默认为80),如果设置的宽度太小导致引起语法问题时候则不会再被截断pprint(data,width=50)#限制嵌套的输出,对于非常深的数据结构,可能不需要输出所有细节,未包含层次使用...代替pprint(data,depth=1)#递归 递归数据由指向原数据的引用来表示from pprint import pprintlocal_data = ['n','a',1,2,3]local_data.append(local_data)pprint(local_data)结果:[(1, {
'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}), (2, {
'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D', 'e': 'e', 'f': 'f', 'g': 'g', 'h': 'h', 'i': 'i', 'j': 'j'})][(...), (...)]['n', 'a', 1, 2, 3,
]

 

转载于:https://www.cnblogs.com/master-song/p/9085669.html

你可能感兴趣的文章
Django 框架篇(七) : 中间件 以及 5种方法
查看>>
python 处理CSV数据
查看>>
tensorflow实战系列(三)一个完整的例子
查看>>
Mybatis:resultMap的使用总结
查看>>
使用U盘安装Ubuntu
查看>>
XFTP 乱码
查看>>
java Int数据工具类
查看>>
下载文件根据浏览器判断文件名,解决兼容性问题
查看>>
当网站不允许上传ASP,CGI,CER等脚本文件时
查看>>
Access 中数据库操作时提示from子句语法错误
查看>>
【备战NOIP】[算法总结] 二分查找
查看>>
sort函数用于vector向量的排序
查看>>
《算法》-- 总结
查看>>
El表达式
查看>>
leetcode-题8-3sum
查看>>
SQL-Server使用点滴(二-系统表)
查看>>
Djiango django跨域 cookie session
查看>>
vue通过webpack打包后怎么运行
查看>>
MYSQL中的日期转换
查看>>
在线修改Schema
查看>>