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

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. CodeForces 546D

    Description 两个士兵在玩一个游戏,开始的时候第一个士兵选择一个数n,并把这个数交给第二个士兵,第二个士兵必须选择一个x满足x>1 且n能被x整除,然后将n变为n/x,然后把这个数交给 ...

  2. 小例子解释wait与notify的区别

    系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式.所有的这些问题都可以在阻塞与等待中看出端倪,发现并解决问题. 首先是下载开发工具,磨刀不误砍材工.点此下载 这是一 ...

  3. 366. Find Leaves of Binary Tree C#

    Example:Given binary tree 1 / \ 2 3 / \ 4 5 Returns [4, 5, 3], [2], [1]. Explanation: 1. Removing th ...

  4. LightOJ 1095 Arrange the Numbers-容斥

    给出n,m,k,求1~n中前m个正好有k个在原来位置的种数(i在第i个位置) 做法:容斥,先选出k个放到原来位置,然后剩下m-k个不能放到原来位置的,用0个放到原来位置的,有C(m-k,0)*(n-k ...

  5. python如何保证多个线程同时修改共享对象时不出错!

    import threadingimport timenumber = 0lock = threading.RLock() #是Lock()的升级版,用Rlock()即可def run(num): l ...

  6. 在hadoop 的任务中设置 map数量

    试验了一下: 调整mapred-site.xml中mapred.min.split.size的值可以改变map的数量 首先设置了hdfs-site.xml中的dfs.block.size为20M,测试 ...

  7. java.lang.OutOfMemoryError: Java heap space错误及处理办

    默认方式启动Eclipse时,有关启动时JVM参数是在Eclipse安装目录下的eclipse.ini文件中指定的.在命令行下,也可以通过参数-vmargs来达到此目的.其命令格式为:eclipse ...

  8. mybatis---知识点复习

    mybatis的配置文件是configuation.xml是配置文件,主要是配置jdbc(用来创建sessionfactory)以及映射文件的别名, 一对多: <mapper namespace ...

  9. ensp实战之防火墙安全转发策略

    本次实验用防火墙是USG6000V,拓扑图如下: 步骤一: 按上面配好PC1.2.3以及WWW服务器的IP地址.子网掩码以及网关: 步骤二: 进入防火墙的CLI命令模式下,按一下命令配置: 配置各个接 ...

  10. Centos6.3手动rpm安装gcc,c++

    如果你的服务器是不能上网的,那就说明你要手动安装很多软件,比如gcc; 1,首先到http://vault.centos.org/6.3/os/x86_64/Packages/下载用到的rpm包,包括 ...