python从入门到精通(DAY 2)

yipeiwu_com5年前Python基础

1、字典复制:

dict = {'name':'wang', 'sex':'m', 'age':34, 'job':'it'}

info = dict      ##别名 (二个字典指向内存的同一地址空间)

info1 = dict.copy()  #shadow copy 浅复制(嵌套字典第一层独立,第二层以下相关联)

import copy

copy.copy()      #shadow copy 浅复制

copy.deepcopy()    #deep copy  深复制(完全独立)

注:浅复制下的关联只是针对字典初始状态包含的嵌套对象,后新加的不会

例:

>>> dict
{'info': ['a', 'b', 1, 2], 'job': 'it', 'sex': 'm', 'age': 40, 'name': 'wang'}
>>> dict_alias = dict
>>> dict_copy = copy.copy(dict)
>>> dict_deep = copy.deepcopy(dict)

#添加、改变、删除第一层的对象键值,浅复制和深复制都不受影响

>>> dict['age'] = 32

>>> del dict['sex']
>>> dict
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 32, 'name': 'wang'}
>>> dict_alias   
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 32, 'name': 'wang'}
>>> dict_copy   
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
>>> dict_deep   
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}

#改变、删除原有的第二层的对象键值,浅复制受影响,而深复制都不受影响

>>> dict['info'][2] = 100
>>> dict
{'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 32, 'name': 'wang'}
>>> dict_alias
{'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 32, 'name': 'wang'}
>>> dict_copy
{'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
>>> dict_deep
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}

#添加第二层的对象,浅复制和深复制都不受影响

>>> dict['new'] = {'a':1, 'b':2, 'c':5}
>>> dict
{'info': ['a', 'b', 100, 2], 'name': 'wang', 'age': 32, 'job': 'it', 'new': {'a': 1, 'c': 5, 'b': 2}}
>>> dict_alias
{'info': ['a', 'b', 100, 2], 'name': 'wang', 'age': 32, 'job': 'it', 'new': {'a': 1, 'c': 5, 'b': 2}}
>>> dict_copy
{'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
>>> dict_deep
{'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}

2、内置函数说明:

      __name__:主文件时返回main,否则返回文件名,可用来判断是否说主文件还是导入模块;

      __file__:文件的绝对路径;

      __doc__:文件开头的注释说明

例:

'''
  created by 2015-12-18
  @author: kevin
'''

if __name__ == '__main__':
  print('this is main file')
  print(__file__)
  print(__doc__)

相关文章

Pandas实现数据类型转换的一些小技巧汇总

Pandas实现数据类型转换的一些小技巧汇总

前言 Pandas是Python当中重要的数据分析工具,利用Pandas进行数据分析时,确保使用正确的数据类型是非常重要的,否则可能会导致一些不可预知的错误发生。 Pandas 的数据类...

python 美化输出信息的实例

python 美化输出信息的实例

如下所示: # -*- coding: utf-8 -*- # @Author: xiaodong # @Date: just hide # @Last Modified by:...

python实现移位加密和解密

python实现移位加密和解密

本文实例为大家分享了python实现移位加密和解密的具体代码,供大家参考,具体内容如下 代码很简单,就不多做解释啦。主要思路是将字符串转为Ascii码,将大小写字母分别移位密钥表示的位...

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

首先要下载:Graphviz - Graph Visualization Software 安装完成后将安装目录的bin 路径加到系统路径中,有时候需要重启电脑。 然后: pip...

python实现apahce网站日志分析示例

维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:应用到:shell与python数据交互、数据抓取,编码转换 复制代码 代码如下:#coding:utf-8...