主要内容:
字典 集合 文件处理 字符编码

1、字典
dict简介
dict就是key value值,索引有意义,数据无序

key定义规则:
a:不可变--数字、字符串、元组(可变--列表、字典)
b:不能重复

定义
D = {
'name':'zs',
'age':'12',
'sid':'01'
}
#增
D['wid']='001'
D.setdefault('gender','MEN')
D.setdefault('gender',[]).append('MEN')
D.setdefault('gender',[]) and D['gender'].append('MEN')

#删
del D['wid']
D.pop('name') #索引不存在,报错"KeyError",并且终止程序
D.popitem() #没有参数,随机删除数据(key,value)

#改
D['age']=21
D.update

#查
print(D['age'])
print(D['agedsd']) #查找索引不存在,报错"KeyError",并且终止程序
print(D.get('name'))
print(D.get('hjahs')) #查找索引不存在打印"None",不会中断程序

清空字典:
dic.clear()
拷贝字典:
dic1=dic.copy()

快速生成字典
dic2=dict.fromkeys('abc',1) #快速生成的办法,对应所有的value值对应内存中同一个地址,更改一个会将所有的值全部修改

#item()方法,
#数据量大时不要使用,会将所有的数据全部转化为列表,然后在列表中查找数据
for k,v in dic.item():
print(k,v)

#打印keys
#数据量大时,使用key的方法
print (dict1.keys())
for i in (dict1.keys()):
print(i,dict1[i])

#打印values
print (dict1.values())

#浅copy
D1 = D.copy()
D1["sid"][2] = 4
print(D)
print(D1)
print (id(D["sid"]),id(D1["sid"]))
输出:
F:\Python\Python3\python.exe D:/python培训/our_python/day3/练习.py
{'age': '12', 'name': 'zs', 'sid': [1, 2, 4]}
{'age': '12', 'name': 'zs', 'sid': [1, 2, 4]}
5273280 5273280

#深copy
strip()去空格、换行符
import copy
D = {
'name':'zs',
'age':'12',
'sid':[1,2,3]
}
D2 = copy.deepcopy(D)
D1 = D.copy()
D1["sid"][2] = 4

print(D) #原字典
print(D1) #浅拷贝,只拷贝外层
print(D2) #深拷贝,完全拷贝一份
print (id(D["sid"]),id(D1["sid"]))
print (id(D["sid"]),id(D2["sid"]))
输出:
F:\Python\Python3\python.exe D:/python培训/our_python/day3/练习.py
{'sid': [1, 2, 4], 'name': 'zs', 'age': '12'}
{'sid': [1, 2, 4], 'name': 'zs', 'age': '12'}
{'sid': [1, 2, 3], 'name': 'zs', 'age': '12'}
7235584 7235584
7235584 7234464

2、集合
s1 = {1,2,3,4,5}
s2 = {2,3}

基本方法:全部不修改s1和s2
#交集
print(s1&s2)
print(s1.intersection(s2))

#并集
print(s1|s2)
print(s1.union(s2))

#差集
print(s1-s2)
print(s1.difference(s2))
print(s2-s1)
print(s2.difference(s1))

#对称差集 s1|s1 - s1&s2
print(s1^s2)
print(s1.symmetric_difference(s2))

#子集
print(s1<=s2)
print(s1.issubset(s2))
print(s2<=s1)
print(s2.issubset(s1))

#父集
print(s1>=s2)
print(s1.issuperset(s2))
print(s2>=s1)
print(s2.issuperset(s1))

其他内置函数:
s1 = {1,2,3,a,c}
s1.update(s2) #更新
add('hello') #增加
s1.pop() #随机删除
s1.remove('a') #指定删除;删除元素没有报错KeyError,终止程序
s1.remove() #没有参数,报错TypeError
s1.discard('a') #指定删除;删除元素没有,返回None
s1.difference_update(s2) #s1=s1-s2 最终会修改s1的值

3、字符编码
A:内存固定使用unicode编码,无法改变
B:存入和读取使用编码必须一致
C:运次程序过程:从硬盘读取到内存,python解释器运行
D:.py文件中指定的编码是指定从硬盘中读取数据时使用的编码格式
写入硬盘encode指定编码
读入内存decode指定编码
#coding:gbk
#_*_coding:gbk_*_

4、文件处理
a = {'name':'asd'}

eval(a) 字符串转换成字典

例如下图:

Python基础篇-day3的更多相关文章

  1. python基础篇-day1

    python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...

  2. python基础篇之进阶

    python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython  使用c解释器生产 ...

  3. python基础篇(六)

    PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...

  4. python基础篇(五)

    PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...

  5. python基础篇(一)

    PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...

  6. python基础篇(二)

    PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...

  7. python基础篇(三)

    PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...

  8. python基础篇(四)

    PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...

  9. Python基础篇--输入与输出

    站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...

随机推荐

  1. C# 语言规范_版本5.0 (第9章 命名空间)

    1. 命名空间 C# 程序是利用命名空间组织起来的.命名空间既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法). using 指令(第 9.4 节)用来 ...

  2. typeof做类型判断时容易犯下的错

    学过js同学都知道js的数据类型有 字符串.数字.布尔.Null.Undefined和object(数组.function......) 作为一个初学者我一直认为每个数据类型返回的结果是这样的 typ ...

  3. AppDelegate 里一个基本的跳转方法,用来在rootView崩溃的时候直接调试我自己的页面

    将 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)lau ...

  4. jetty启动https

    <Configure id="Server" class="org.eclipse.jetty.server.Server"> <!-- if ...

  5. ccf cv讲座记录

  6. 网站引导页flash动画跳转js脚本

    if (getCookie("guidance") == null) { document.cookie = "guidance=true"; window.l ...

  7. vs2010帮助文档下载以及帮助查看器(H3Viewer)的使用

    在工作中遇到想查看vs2010的帮助文档.推荐使用H3Viewer.一个第三方的免费软件,独立于VS2010运行的帮助查看器.这方面的资料并不多.把本次自己使用的心得分享给大家. H3Viewer官方 ...

  8. On the first day here

    记录一下到这里的第一天 简单的自我介绍一下: 姓名: 郑超杰 昵称: 蝴蝶 English Nickname:   developerbfl     技能: OC  H5  Swift         ...

  9. apache增加php版本

    把新的php版本解压到与旧的php版本相同目录 在新的php文件夹根目录复制一个 php.ini-development 重命名为 php.ini打开php.ini, 搜索 extension_dir ...

  10. Java AOP - Aspectj

    1. 序 Aspect Oriented Programming (AOP)是近来一个比较热门的话题. AspectJ是AOP的Java语言的实现,获得了Java程序员的广泛关注. 关于AspectJ ...