Python基础篇-day3
主要内容:
字典 集合 文件处理 字符编码
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的更多相关文章
- python基础篇-day1
python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...
- python基础篇之进阶
python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython 使用c解释器生产 ...
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...
- python基础篇(一)
PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
- python基础篇(三)
PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...
- python基础篇(四)
PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...
- Python基础篇--输入与输出
站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...
随机推荐
- [河南省ACM省赛-第三届] 素数 (nyoj 169)
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #i ...
- Session小解
Session特点: 1.Session保存在服务器端,为了获得更高的存取速度,一般把Session保存在内存当中: 2.每个用户都有一个独立的Session,为了避免大量用户访问服务器导致内存溢出, ...
- Junit单元测试对线程测试没反应
今天还想简单写写线程的东西,结果刚刚写完我就懵逼了. 结果啥都没有输出,而用主方法运行就可以输出.没办法,只有度年来寻求自己的答案了 结果各方面的了解,我算是有个了解了. 首先来看看代码 packag ...
- my_query()的引号注意
$sql="insert into lianxi values(null,'$usename','$email',$sex,$age,'$chusheng','$guanji')" ...
- win10十周年更新后cent os 虚拟机无法连接到xshell
1.在vmware中打开编辑-->虚拟网络编辑器-->还原默认设置
- 闭包&装饰器详解
闭包 先不着急看闭包的定义,让我们从一段示例代码开始.如果将上一个示例稍微修改下: >>> def outer(): ... x = 1 ... def inner(): ... p ...
- dropdown-toggle 的点击禁用
<div class="dropdown select-dropdown" id="choiceTagdiv"> <a class=" ...
- C#入门经典中的SelectionFont属性为null
14.6.2.richtextbox控件: private void buttonbold_click(object sender, eventargs e) { ...
- magento里获取用户姓名
Mage::getSingleton('customer/session')->getCustomer()->getFirstname():
- tomcat 启动超时
1.如果是eclipse 里集成的tomcat 在server 下 双击tomcat 在tomcat 配置里将启动时间延长,保存再启动. 2.如果是非集成的tomcat 则在tomcat的配置文件 ...