学习内容:

1、Python字典

2、Python集合

3、Python字符编码

4、Python文件操作

5、Python实例

一、Python字典

1、定义:

dic1={'name':'alex','age':18,} 

字典的Key值定义规则:

  1)数据类型不可变,数据类型可哈希的就可以是key

  2)字典的Key值是唯一的

2、查询

dic1['name'] 若Key值不存在,会报错
dic1.get(123456) 若Key值不存在,返回None

3、增加

dic1['sex'] = 'F'

4、更改

dic1['sex'] = 'M'

5、删除

del dic1['sex']

6、字典的内置函数

dic1.clear()        #清空字典
dic1=names.copy() #复制
dic2=dic1.fromkeys('abc',1) #重新定义一个字典,结果与dic1无关
dic1.get('name') 等同于dic1['name'] 若Key值不存在,前者不报错,后者会报错
dic1.items() #将key、value转成元组保存在列表中
dic1.pop('key值') #删除字典中的key值,打印返回value
dic1.popitem() #随机删除 若key值为空,出现KeyError错误
dic1.setdefault('gender',[]) #新增字典内容==dic1['gender']
dic1.setdefault('gender',[]).append('male')
names.update(dic1) # names新增dic1内容,重复的覆盖
dic1.update(name='lhf',gender='nale') #将内容新增到字典中,key值重复的覆盖掉
dic1.values() #取所有value值保存在列表中
dic1.keys() #取所有key值保存在列表中
import copy
copy.copy() #浅copy
copy.deepcopy() #深copy 完全克隆一份

二、Python集合

1、创建

s1={'a',1,2,3,4,5,6,7,8,9,10,2,3,3}
list_1 = [1,3,5,7,26,8,65]
list_1=set(list_1)
python_set={'alex','lhf','sijiayong','panmfeng','sunahaifeng'}
linux_set={'zhao','qian','alex','lhf'}
go_set={'alex','linyi','qiner'}
print (type(python_set))

2、集合间的操作

1)交集  & or intersection

python_set.intersection(linux_set)

2)并集 | or   union

python_set.union(linux_set)

3)差集  -  or difference

python_set.difference(linux_set)

4)对称差集  ^  or symmetric_difference

python_set.symmetric_difference(linux_set)

5)子集  <=  or issubset

s1.issubset(s2)

6)父集 >=  or issuperset

s1.issuperset(s2)

3、集合的内置函数

s1.update('eh')    #按单个增加
s1.add('hello') #按一个字符串增加
s1.pop() #随机删除
s1.remove('Y') #指定删除,若没有该元素,则报
s1.discard('o') #不报错的删除,若没有该元素,返回None

三、Python字符编码

1、内存固定使用unicode编码,硬盘的编码(即你可以修改的软件编码)

2、使用什么编码往硬盘存,就用什么编码去读取

3、程序运行分俩个阶段:1)从硬盘读到内存;2)python解释器运行已经读到内存的代码

4、针对一个test.py文件来说,python与pycharm、nodpad++的区别是多了第二步骤

5、coding指定的编码只是表面从硬盘到内存用什么区读

四、Python文件操作

1、打开文件

指定用utf-8编码打开文件,默认是读模式(r)

f=open ('lyrics',encoding='utf-8')

2、读取文件

f.readline().strip()

3、写文件

f=open ('lyrics','w',encoding='utf-8')
f.write('天安门上太阳升\n')

4、遍历文件

第一种方法(一行一行读取,高效):

for line in f :
  print (line.strip())
  f.close()

第二种方法(也是一行一行读取):

 for  i in range(5):
print (f.readline().strip())

第三种方法(把文件全部读取到内存中,建议不要用):

 for index,line in enumerate(f.readlines()):
if index <5:
print (line.strip())
else:
break

5、文件的混合模式

r+  读写
w+ 写读
a+ 追加读

6、文件的内置函数

print(f.closed)    #关闭打开的文件
print (f.encoding) #文件编码
print (f.fileno()) #文件时系统帮忙打开的,返回的是系统内该文件的文件标签
f.flush() #将缓冲区的内容写入硬盘
f.isatty() #判断是否为tty终端文件
print(f.name) #打印f文件的名字
f.seek() #移动光标
f.seekable() #二进制文件不可以seek
f.tell() #告诉当前光标的位置
f.truncate( ) #截断,从光标的位置把内容全截断,对于文本的截断没大用,只能按字符截断,对二进制文件有用

7、文件的内容修改

f = open('lyrics','r',encoding='utf-8')
f2 = open('lyrics_new','w',encoding='utf-8')
find_str = '夜晚的'
new_str = '白天的寒冷的'
for line in f:
if find_str in line:
line =line.replace(find_str,new_str)
f2.write(line)
f.close()
f2.close()

五、Python实例

1、sed替换程序

2、修改haproxy配置文件程序

												

最新文章

  1. 《JS设计模式笔记》 4,桥接模式
  2. C语言中执行到预编译
  3. sql like in 语句获取以逗号分割的字段内的数据
  4. ASP.NET中身份验证
  5. Activity的启动模式及回退栈的概念
  6. [学习笔记]--Jfinal 表单提交附件
  7. UltraEdit的语法高亮显示配置
  8. Largest Rectangle in a Histogram(最大矩形面积,动态规划思想)
  9. PowerDesigner有几个需要设置
  10. [CLR via C#]1.5 本地代码生成器:NGen.exe
  11. seajs简记
  12. web项目编译出错时,原因之一,可能是build path 中order and Export引起
  13. 神经网络结构在命名实体识别(NER)中的应用
  14. bzoj 4653: [Noi2016]区间
  15. Linux 下面 PG 的 uuid-ossp 包安装办法
  16. C. Oh Those Palindromes
  17. shell 文件描述符
  18. LeetCode 804 Unique Morse Code Words 解题报告
  19. length-of-last-word 最后一个单词的长度
  20. unity-------Light的各个参数使用

热门文章

  1. Git项目存放位置在导入Eclipse前不能存放在Eclipse Workspace
  2. JSP(include指令与&lt;jsp:include&gt;动作的区别)
  3. install LLVM
  4. mac--又发现了一款mac快捷键神器
  5. ZT 螨虫知识2
  6. Monkeyrunner小脚本关于camera的使用
  7. asp.net下AjaxMethod的使用方法
  8. 解析jquery获取父窗口的元素
  9. 由React学习到Yeoman安装以及遇到的问题
  10. Hadoop2.6.0子项目hadoop-mapreduce-examples的简单介绍