学习内容:

1. 元组操作

2. 字典操作

3. 文件操作

4. 深浅copy

1. 元组操作:

元组和列表非常相似,只不过元组不能在原处修改(它是不可变的),并且通常写成圆括号中的一系列项。

# 元组定义(存取方式同列表), 元组只有2个方法:index 和 count
names = ("wills","oscar","tom","jerry")

2. 字典操作:

# 字典定义
employees = {
"s001":"wills",
"s002":"jerry",
"s003":"tom"
}
print(employees) # 增加Key
employees["s004"] = "felicity"
print(employees) # 修改值
employees["s004"] = "oliver"
print(employees) # 查找
if "s001" in employees:
print(employees.get("s001")) print(employees.get("s001")) print(employees["s001"]) # 删除
del employees["s002"]
employees.pop("s002")
employees.popitem() # 随机删除 # 打印key
print(employees.keys()) # 打印values
print(employees.values()) # 打印items,包含k,v
print(employees.items()) # 字典嵌套
names = {
"wills":{"sex":"female","job":"devOps","hobby":"running"},
"oscar":{"sex":"male","job":"backenddev","hobby":"smoking"},
"tom":{"sec":"male","job":"dev","hobby":"travel"}
}
names["oscar"]["hobby"] = "no smoking"
print(names) # 字典循环遍历
for k,v in employees.items():
print(k,v) for key in employees:
print(key,employees[key]) # 合并(更新了"s001",追加了"s007"
employees2 = {
"s001":"arrows",
"s007":"chenergou"
} employees.update(employees2)
print(employees)

3. 文件操作

文件操作的流程:

1. 打开文件,得到文件名柄并赋值给一个变量,

2. 通过句柄对文件进行操作

3. 文件关闭

文件的打开模式:

1. r, 只读模式(默认)

2. w, 只写模式(不可读,不存在则创建,存在则删除内容)

3. a, 追加模式(可读,不存在则创建,存在则只追加内容)

"+" 表示可以同时读写某个文件

1. r+, (可读写文件,可读可写可追加)

2. w+, (写读)

3. a+, (同a)

"U"表示在读取时,可以将\r \n \r\n自动转换成\n (与r 或 r+模式同时使用)

"b"表示处理二进制文件(可以与r w a 同时使用)

# 以写模式打开文件
myfile = open("new.txt","w") # 写一行文本
myfile.write("hello world!\n")
myfile.write("second line\n")
myfile.write("thrid line\n")
# 关闭文件
myfile.close() # 以只读模式打开文件
myfile = open("new.txt") # 一次读取一行
print(myfile.readline()) # 一次读取所有行
print(myfile.readlines())

文件修改的两种方式:

1. 一次将文件所有行读入内存变量,然后修改,再写入文件。(缺点是浪费太多内存,不建议)。

2. 一行一行的读取文件,只修改需要修改的行。

# 一行一行的读取文件内容,将thrid改为three
myfile = open("new.txt")
myfile2 = open("new2.txt","w")
for line in myfile:
if "thrid" in line:
line = line.replace("thrid","three")
myfile2.write(line)
myfile.close()
myfile2.close()

4. 深浅copy

import copy
# 数字copy,
a = 1
b = a # b只是copy了a的值,所以个修改a的值不会影响b的值。
a =2
print("a= %d , b= %d" %(a,b))
print("#----------------------------------------------") # 浅copy: 对于一维列表,copy的是值;对于二维列表,copy的是引用
names = ["stark","spider",["captain1","captain2","captain3"],"flush","runner","vampire"]
names2 = copy.copy(names) # 第一种浅COPY的方式
# names2 = names[:] # 第二种浅COPY的方式
# names2 = list(names) # 第三种浅COPY的方式
names[1] = "Wills.Spider"
names[2][0] = "Captain"
print("浅COPY:")
print("names:",names)
print("names2:",names2)
print("#----------------------------------------------")
# 深copy: 对于一维列表,copy的是值;对于二维列表,copy的也是值。 names = ["stark","spider",["captain1","captain2","captain3"],"flush","runner","vampire"]
names2 = copy.deepcopy(names)
names[1] = "Wills.Spider"
names[2][0] = "Captain"
print("浅深COPY:")
print("names:",names)
print("names2:",names2)
print("#----------------------------------------------") '''
p1和p2是夫妻,2人共有100万存款,当p1取走20万时,p2去查询时,会发现余额还有80万
'''
print("浅COPY的实际应用")
person = ["name",["saving",1000000]]
p1 = person[:]
p2 = person[:]
p1[0] = "Romeo"
p2[0] = "Juliet"
print(p1)
print(p2)
print("p2取款20万")
p2[1][1] = ""
print(p1)
print(p2)

day2-元组、字典、文件操作的更多相关文章

  1. Python 自学基础(一)——元组 字典 文件操作

    格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...

  2. python基础之元组、文件操作、编码、函数、变量

    1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...

  3. python基础--字符串操作、列表、元组、文件操作

    一.变量及条件判断 1.字符串.布尔类型.float.int类型,None都是不可变变量 2.字符串是不可变变量,不可变变量就是指定义之后不能修改它的值 3.count +=1和count=count ...

  4. python 深浅拷贝 元组 字典 集合操作

    深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ...

  5. python字符串 列表 元组 字典相关操作函数总结

    1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...

  6. python基础:python循环、三元运算、字典、文件操作

    目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执 ...

  7. python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)

    1.元组()元组跟列表一样,但是不能增删改,能查.元组又叫只读列表2个方法 一个 count 一个 index2.字典{}字典是通过key来寻找value因为这里功能比较多,所以写入了一个Code里面 ...

  8. python【第二篇】列表、元组、字典及文件操作

    本节内容 列表 元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作:列表有序.可变.元素 ...

  9. Python基础(4)列表、元组、字符串、字典、集合、文件操作

    列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...

  10. Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

    一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name  = "Jonathan&q ...

随机推荐

  1. Java-Class-C:com.alibaba.fastjosn.JSON

    ylbtech-Java-Class-C:com.alibaba.fastjosn.JSON 1.返回顶部 1.1.import com.alibaba.fastjson.JSON;import co ...

  2. 2019 牛客多校第一场 A Equivalent Prefixes

    题目链接:https://ac.nowcoder.com/acm/contest/881/A 题目大意 定义 RMQ(u, L, R) 为 u 数组在区间 [L, R] 上最小值的下标. 如果有 2 ...

  3. tensorflow TypeError: Can not convert a float32 into a Tensor or Operation

    遇到这种情况可能是你的程序中有和你定义的tensor 变量重名的其他变量名字,jishi在for循环中使用了这个名字的作为临时变量也不行.tenor 变量很娇气.坑了我一晚上的时间. 比如:x = t ...

  4. java 判断int类型为空

    int id = 10; if("0".equals(String.valueOf(id)) || "null".equals(String.valueOf(i ...

  5. Mac Eclipse常用快捷键

    Option + Command + X: 运行 Command + O:显示大纲 Command + 1:快速修复 Command + D:删除当前行 Command + Option + ↓:复制 ...

  6. Jmeter----参数化之csv文件

    用户编码:一般不用填写,如果有中文的时候,需要填写,填写utf-8就可以 变量名词:是指的把数据保存在什么变量里面,其他的默认就好了 Http请求和用户参数设置的一样

  7. 随笔-ansible-3

    关于循环的一些事: 是否是因为模块的原因? item适用于copy,但不适用于yum.虽然出现了警告,但并不表示不能用.功能还是不受影响的. 在上例中,我们使用了yum.copy.service模块( ...

  8. 为kubectl配置别名和命令行补齐

    配置别名 # vim ~/.bashrc 添加 alias k='kubectl' # source ~/.bashrc 配置命令行补齐 # yum install -y bash-completio ...

  9. css布局-瀑布流的实现

    一.基本思路 1.先看最终的效果图: 2.实现原理:通过position:absolute(绝对定位)来定位每一个元素的位置,并且将当前列的高度记录下来方便下一个dom位置的计算 二.代码实现 1.版 ...

  10. opencv3.1.0 在控制台程序中报错:winnt.h(6464): error C2872: ACCESS_MASK: 不明确的

    在winnt.h里面有一个cv的命名空间,同样定义了一个ACCESS_MASK,跟opencv的cv::ACCESS_MASK发生了冲突!!! 该冲突在MFC中没有出现,在控制台程序中才会报错!对于o ...