#!/usr/bin/env python
# -*- coding:utf-8 -*- # 1.看代码写结果
'''
v1 = [1, 2, 3, 4, 5]
v2 = [v1, v1, v1]
v1.append(6) # 内部修改,都改变
print(v1) # [1, 2, 3, 4, 5,6]
print(v2) # v2 = [[1, 2, 3, 4, 5,6], [1, 2, 3, 4, 5,6], [1, 2, 3, 4, 5,6]]
''' # 2.看代码写结果
'''
v1 = [1, 2, 3, 4, 5]
v2 = [v1, v1, v1]
v2[1][0] = 111 # 内部修改 v1 = [111, 2, 3, 4, 5]
v2[2][0] = 222 # 内部修改 v1 = [222, 2, 3, 4, 5]
print(v1) # v1 = [222, 2, 3, 4, 5]
print(v2) # v2 = [[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]
''' # 3.看代码写结果,并解释每一步的流程。
'''
v1 = [1,2,3,4,5,6,7,8,9]
v2 = {}
for item in v1:
if item < 6:
continue
if 'k1' in v2:
v2['k1'].append(item)
else:
v2['k1'] = [item] # v2 = {'k1':[6,7,8,9]}
print(v2)
''' # 4.简述深浅拷贝?
'''
深拷贝:拷贝嵌套层次中的所有可变类型.
浅拷贝:只拷贝第一层.
''' # 5.看代码写结果
'''
import copy v1 = "alex"
v2 = copy.copy(v1) # 浅拷贝 v2 = v1,指向同一内存地址
v3 = copy.deepcopy(v1) # 深拷贝 v3 = v1
print(v1 is v2) # True
print(v1 is v3) # True
''' # 6.看代码写结果
'''
import copy v1 = [1, 2, 3, 4, 5]
v2 = copy.copy(v1) # v2 == v1
v3 = copy.deepcopy(v1) # v3 == v1
print(v1 is v2) # False
print(v1 is v3) # False
''' # 7.看代码写结果
'''
import copy v1 = [1, 2, 3, 4, 5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[0] is v2[0]) # True
print(v1[0] is v3[0]) # True
print(v2[0] is v3[0]) # True
''' # 8.看代码写结果
'''
import copy v1 = [1, 2, 3, 4, 5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[0] is v2[0]) # True
print(v1[0] is v3[0]) # True
print(v2[0] is v3[0]) # True
''' # 9.看代码写结果
'''
import copy v1 = [1, 2, 3, {"name": '武沛齐', "numbers": [7, 77, 88]}, 4, 5]
v2 = copy.copy(v1)
print(v1 is v2) # False
print(v1[0] is v2[0]) # True
print(v1[3] is v2[3]) # True
print(v1[3]['name'] is v2[3]['name']) # True
print(v1[3]['numbers'] is v2[3]['numbers']) # True
print(v1[3]['numbers'][1] is v2[3]['numbers'][1]) # True
''' # 10.看代码写结果
'''
import copy v1 = [1, 2, 3, {"name": '武沛齐', "numbers": [7, 77, 88]}, 4, 5]
v2 = copy.deepcopy(v1)
print(v1 is v2) # False
print(v1[0] is v2[0]) # True
print(v1[3] is v2[3]) # False
print(v1[3]['name'] is v2[3]['name']) # True
print(v1[3]['numbers'] is v2[3]['numbers']) # False
print(v1[3]['numbers'][1] is v2[3]['numbers'][1]) # True
''' # 11.简述文件操作的打开模式
'''
r,只读模式,无文件报错.
w,只写模式,写入会先清空并覆盖原内容,无文件新建.
a,追加模式,无文件新建,在文件最后追加内容.
r+,读写模式,从光标位置读取,seek()定位光标,写入可能会覆盖原内容.
w+,写读模式,写入前先清空原内容,读取需要seek()定位光标.
a+,追加写读,根据光标位置读取,写入在最后.
''' # 12.请将info中的值使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
info = ['骗子,','不是','说','只有','10','个题吗?']
s = '_'.join(info)
f = open('readme.txt',mode='w',encoding='utf-8')
f.write(s)
f.close()
''' # 13.请将info中的值使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
info = ['骗子,','不是','说','只有',10,'个题吗?']
info[4] = str(info[4])
s = '_'.join(info)
f = open('readme.txt',mode='w',encoding='utf-8')
f.write(s)
f.close()
''' # 14.请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
# info = {'name': '骗子', 'age': 18, 'gender': '性别'}
# 1. 请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
s = '_'.join(info)
f = open('readme.txt',mode='w',encoding='utf-8')
f.write(s)
f.close()
'''
# 2. 请将info中的所有值 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
lst = list(info.values())
lst[1] = str(lst[1])
s = '_'.join(lst)
f = open('readme.txt', mode='w', encoding='utf-8')
f.write(s)
f.close()
'''
# 3. 请将info中的所有键和值按照 "键|值,键|值,键|值" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
info = {'name': '骗子', 'age': 18, 'gender': '性别'}
s = ''
info['age'] = str(info['age'])
for k,v in info.items():
a = k +'|' + v + ','
s += a
f = open('readme.txt',mode='w',encoding='utf-8')
f.write(s[0:-1])
f.close()
''' # 15.写代码
# 要求:
# 如文件 data.txt 中有内容如下:
# wupeiqi|oldboy|wupeiqi@xx.com
# alex|oldboy|66s@xx.com
# xxxx|oldboy|yuy@xx.com
# 请用代码实现读入文件的内容,并构造成如下格式:
# info = [
# {'name':'wupeiqi','pwd':'oldboy','email':'wupeiqi@xx.com'},
# {'name':'alex','pwd':'oldboy','email':'66s@xx.com'},
# {'name':'xxxx','pwd':'oldboy','email':'yuy@xx.com'},
# ]
'''
info = []
f = open('data.txt',mode='r',encoding='utf-8')
for i in f.readlines():
dic = {}
new_i = i.strip()
new2_i = new_i.split('|')
dic['name'] = new2_i[0]
dic['pwd'] = new2_i[1]
dic['email'] = new2_i[2]
info.append(dic)
print(info)
f.close()
'''

oldboy s21day07(深浅拷贝及文件操作)的更多相关文章

  1. day03深浅拷贝、文件操作和函数初识

    一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...

  2. Python 深浅copy 和文件操作

    深浅copy 1,先看赋值运算. l1 = [1,2,3,['barry','alex']] l2 = l1 l1[0] = 111 print(l1) # [111, 2, 3, ['barry', ...

  3. day07 深浅拷贝

    今日概要 深浅拷贝(重点) 文件操作 详细内容 直接赋值: 直接将对象的引用赋值给另一个对象 v1=1000 v2=v1 #v1 v2指向同一个内存地址 print(id(v1),id(v2))#相等 ...

  4. 知识点补充 set 深浅拷贝

    一 对前面知识点的补充 1.str中的join()方法是将列表转换成字符串 lst = ["韩雪","赵丽颖","黄渤","李连杰 ...

  5. python03-break、continue、for循环、数据bytes类型、字符串与字节的关系、变量指向与深浅拷贝、set集合、文件操作

    目录: 1.break.continue 2.for循环 3.数据bytes类型 4.字符串与字节的关系 5.变量指向与深浅拷贝 6.set集合 7.文件操作 一.break.continue bre ...

  6. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  7. python基础之 编码进阶,文件操作和深浅copy

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...

  8. python基础 (编码进阶,文件操作和深浅copy)

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码. 即先将其他编码的字符串解码(decode)成unicode,再从uni ...

  9. python基础知识-7-内存、深浅、文件操作

    python其他知识目录 1.一些对内存深入理解的案例 以下列举列表,列表/字典/集合这些可变类型都是一样的原理 变量是个地址,指向存储数据的内存空间的地址,它的实质就相当于c语言里的指针.变量和数据 ...

随机推荐

  1. Linux学习之路(二)

    4.Linux文件查找工具. Linux经常使用locate与find作为文件查找命令.find可以认为是系统自带的命令,功能也挺多但是使用方法相对有点繁琐.find查找的是实时文件数据,一般用于查询 ...

  2. LeetCode算法题-Island Perimeter(Java实现)

    这是悦乐书的第238次更新,第251篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第105题(顺位题号是463).您将获得一个二维整数网格形式的地图,其中1代表土地,0代 ...

  3. 记录Nginx模块开发

    --with-http_stub_status_module模块:Nginx的客户端状态 Syntax:stub_status Default:-- Content:server,location l ...

  4. linux性能监控命令(vmstat、sar、iostat、netstat)

    1.常用系统命令Vmstat.sar.iostat.netstat.free.ps.top等 2.常用组合方式• 用vmstat.sar.iostat检测是否是CPU瓶颈• 用free.vmstat检 ...

  5. Android测试(四):Instrumented 单元测试

    原文:https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html Instrume ...

  6. Java HttpURLConnection发送post请求示例

    public static Map<String, Object> invokeCapp(String urlStr, Map<String, Object> params) ...

  7. IdentityServer4【Reference】之Profile Service

    Profile Service 当创建令牌或者请求像Userinfo这种端点时,IdentityServer通常会需要用户的标识信息(identity information),默认情况下,Ident ...

  8. union的特性,去重与不去重

    转载:https://blog.csdn.net/kingmax54212008/article/details/33762921 union的特性,去重与不去重 集合操作有 并,交,差 3种运算. ...

  9. Centos7修改时区

    设置时区同样, 在 CentOS 7 中, 引入了一个叫 timedatectl 的设置设置程序. 用法很简单: # timedatectl # 查看系统时间方面的各种状态 Local time: 四 ...

  10. 02Lua入门

    前言: 语言学起来其实相似点很多,简单整理的知识点 目录: 1.使用控制台 2.Lua基础 3.变量 4.运算符 5.控制结构 1.使用控制台 Lua脚本是包含一系列Lua命令的简单脚本(扩展名为.l ...