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

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. supervisor启动流程

    Supervisor结构: 单点结构如图: 1. 初始化时,启动进程Supervisor,根据 Nimbus分配的任务情况触发启动/停用Worker Jvm进程! 2. 每个Worker进程启动一个 ...

  2. php笔记(二)PHP类和对象之Static静态关键字

      PHP类和对象之Static静态关键字 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { pr ...

  3. PHP ckeditor富文本编辑器 结合ckfinder实现图片上传功能

    一:前端页面代码 <script src="/www/res/ckeditor/ckeditor.js"></script> <textarea id ...

  4. 在.Net MVC中自定义ValidationAttribute标签对Model中的属性做验证

    写一个继承与ValidationAttribute类的自定义的验证方法 MVC中传递数据时,大多数都会用Model承载数据,并且在传到控制器后,对Model进行一系列的验证. 我平时经常使用的判断方法 ...

  5. C#拾遗(一、基本类型)

    1. C#是一种块结构语言,用花括号{}分块,但是用#region和#endregion来定义可以展开和折叠的代码区域 #region 这是引用区 using System; ...... #endr ...

  6. linux 目录及文件的命名规则、ls操作

    linux 命名: 1 不超过255个字符 2 严格区分大小写 3 除/外,其他的字符都是合法的 注意:1)避免文件名首字符使用+ - .(避免和隐藏文件混淆) 2)避免文件名使用空格,制表符以及@# ...

  7. Spring.net 学习

    最近一段时间,在学习spring.net方面的知识,spring.net是什么,spring.net是用来干什么的,我们这里就不在介绍了,spring.net有两方面的内容---IOC(DI)与AOP ...

  8. gridview XML

    GridView动态添加模板列   http://blog.csdn.net/wljhk2006/article/details/24723219 XML与DataTable互转类 http://bl ...

  9. 在cmd中设置字体

    1.首先在cmd中输入chcp 65001 回车(通过 chcp命令改变代码页,UTF-8的代码页为65001) 2.右击命令提示符的标题栏点击属性. 3.在属性中选择字体后点击确认即可.

  10. Debian系Linux的dpkg命令

    dpkg "是"Debian Packager "的简写.为 "Debian" 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自" ...