day2-元组、字典、文件操作
学习内容:
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-元组、字典、文件操作的更多相关文章
- Python 自学基础(一)——元组 字典 文件操作
格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...
- python基础之元组、文件操作、编码、函数、变量
1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...
- python基础--字符串操作、列表、元组、文件操作
一.变量及条件判断 1.字符串.布尔类型.float.int类型,None都是不可变变量 2.字符串是不可变变量,不可变变量就是指定义之后不能修改它的值 3.count +=1和count=count ...
- python 深浅拷贝 元组 字典 集合操作
深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ...
- python字符串 列表 元组 字典相关操作函数总结
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...
- python基础:python循环、三元运算、字典、文件操作
目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执 ...
- python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)
1.元组()元组跟列表一样,但是不能增删改,能查.元组又叫只读列表2个方法 一个 count 一个 index2.字典{}字典是通过key来寻找value因为这里功能比较多,所以写入了一个Code里面 ...
- python【第二篇】列表、元组、字典及文件操作
本节内容 列表 元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作:列表有序.可变.元素 ...
- Python基础(4)列表、元组、字符串、字典、集合、文件操作
列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...
- Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作
一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name = "Jonathan&q ...
随机推荐
- 2.RabbitMQ Window环境安装
RabbitMQ环境的安装分别介绍在Window和Linux下两个环境的安装过程. Window安装RabbitMQ,RabbitMQ安装文件是64位的,所以Window系统必须是64位的.安装R ...
- "Access denied for user 'root@localhost' 试一下你的mysql是不是用任何密码都可以登录,如果是的话这里
https://blog.csdn.net/light_breeze/article/details/82070222 花了三小时...竟然是因为这个
- CodeForces-1221A-2048 Game-思维题
You are playing a variation of game 2048. Initially you have a multiset ss of nn integers. Every int ...
- UVA 240 Variable Radix Huffman Encoding
题目链接:https://vjudge.net/problem/UVA-240 题目大意 哈夫曼编码是一种最优编码方法.根据已知源字母表中字符出现的频率,将源字母表中字符编码为目标字母表中字符,最优的 ...
- selenium基础-跳过验证码
selenium基础-跳过验证码 一.方法 设置万能验证码或者屏蔽验证码(最常用的方法) 使用验证码识别工具识别验证码 通过selenium操作cookies 直接使用配置文件的webdriver 二 ...
- Java oop创建自定义异常
package com.test; /** *不管是在方法定义时就使用try catch,还是在定义方法时将异常抛出在调用方法时使用try catch都能达到效果 * */public class M ...
- PHP算法之无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc&quo ...
- thinkphp rabc权限总结
今天晚上把ThinkPHP的权限分配弄明白了,心里的包袱立刻放下了,感觉那个爽啊!稍微记录一下. 背景:CMS系统开发(17do). 项目分组:Admin(后台管理).Home(前台显示). Admi ...
- [转]SpringMVC框架入门配置 IDEA下搭建Maven项目
初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...
- 【JZOJ6271】锻造 (forging)
description analysis 首先看一下\(p=1\),即\(1\)以后的合成一定成功的情况 如果按照求期望值的一般做法求两把\(0\)合成\(1\)的期望,会画出一棵无穷大的树 这个的期 ...