1.元组()
元组跟列表一样,但是不能增删改,能查。元组又叫只读列表
2个方法 一个 count 一个 index

2.字典{}
字典是通过key来寻找value
因为这里功能比较多,所以写入了一个Code里面,后面加了注释。
 #!/usr/bin/env python
 #_*_coding:utf-8_*_

 info = {
     'stu1101':"Tenglan Wu",
     'stu1102':"LongZe Luola",
     'stu1103':"XiaoZe Maliya",
 }
 #print(info)
 #print(info["stu1101"]) #查找
 #print(info.get('stu1104')) #查找  常用
 #info['stu1101'] = "武藤兰"  #修改
 #info['stu1104'] = "cangjingkong" #添加
 #del
 #del info["stu1101"] #删除
 #info.pop("stu1101") #删除
 #print("stu1103" in info)  #判读是不是有个这个key,返回true false
 # #print(info)
 b = {
     'stu1101':"alex",
     1:3,
     2:5,
 }
 #info.update(b)    #把2个字典合并,有交叉的Key覆盖,没有的旧添加
 #print(info)
 #c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444]) 没用
 #print(c)
 #print(info.items()) #把字典转化为一个列表

 for i in info:
     print(i,info[i])   #这个更高效
 for k,v in info.items(): #items 是把字典转为列表过程,时间会慢
     print(k,v)

3.集合

跟数学里面的定义差不多

因为这里功能比较多,所以写入了一个Code里面,后面加了注释。

 #!/usr/bin/env python
 #_*_coding:utf-8_*_

 #集合
 #list_1 = [1,4,5,7,3,6,7,9]  #集合也是无序的
 #list_1 = set(list_1)   #list_1化为集合
 #print(list_1,type(list_1))
 #list_2 = set([2,6,0,66,22,8,4])
 #print(list_1,list_2)

 #交集  &
 #print(list_1.intersection(list_2))
 #并集  |
 #print(list_1.union(list_2))#union联合的意思
 #差级 我有你没有,你有我没有的  -
 #print(list_1.difference(list_2))  #保留1里面有的,2里面有没有的
 #子集  我包含你
 #print(list_1.issubset(list_2)) #返回ture false
 #print(list_1.issuperset(list_2))
 #对称差集  ^ 上面的
 #print(list_1.symmetric_difference(list_2))#互相都没有的取出来放到一块
 #print(list_1.isdisjoint(list_2)) #判断有没有交集 返回true false

 #添加一项
 #list_1.add(999)
 #print(list_1)
 #添加多个
 #list_1.update([888,777,555])
 #print(list_1)
 #删除
 #list_1.remove(888) #不用print删除就是删除了
 #list_1.pop()
 #list_1.discard(777)  #删除不会报错
 #长度
 #print(len(list_1))
 #成员使用
 #in not in

4.字符编码

记住一句话,用什么编码写的程序,就用什么编码打开  

 #!/usr/bin/env python
 #_*_coding:utf-8_*_

 #默认编码
 #import sys
 #print(sys.getfilesystemencoding())
 #s = "您好"
 #s_to_unicode = s.decode("utf-8")
 #print(s_to_unicode)
 #s_to_gbk = s.decode("utf-8").encode("gbk")  #(不给值,就是默认)
 #print(s_to_gbk)

5.文件操作

一般r+ w的关闭和打开具有清空文件作用

因为这里功能比较多,所以写入了一个Code里面,后面加了注释。

 #!/usr/bin/env python
 #_*_coding:utf-8_*_

 #文件操作
 #readlines 是将文件读成列表的形式 ,每行就是一个元素  预先读到内存里成列表
 #date = open("yesterday.txt",encoding="utf-8").read()
 #f = open("yesterday.txt",'w',encoding="utf-8")#f 文件句柄,就是这个文件的内存文件对象 w这个写模式是创建文件会覆盖
 #date= f.read()
 #f = open("yesterday.txt",'a',encoding="utf-8") #a 就是追加不覆盖文件
 #ate2 =f.read()#文件指针的这种东西,date2没有内容,文件只读一遍
 #print(date)
 #f.write("我爱北京天安门.......,\n") #斜杠为转义符,\n就是回车
 #f.write("天安门上太阳升......")
 #读前五行
 #f = open("yesterday.txt",'r',encoding="utf-8")
 #print(f.readline())
 #print(f.readline())
 #print(f.readline())
 #for i in range(5):
 #    print(f.readline())
 #for line in f.readlines():  #循环列表,相当于每一行,每一行元素
 #    print(line.strip())
 #print(f.readlines())    #每行一个元素

 #for index,line in enumerate(f.readlines()):   #打印到9行前内容 但是提前读了全文 f.readline适合小文件
 #    if index == 9:
 #        print("___fengexian____")
 #        continue
 #    print(line.strip())

 #count = 0
 #for line in f:   #一行行的读,内存也只读一行信息#打印到9行前内容
 #    if count == 9:
 #         print("fdsfsdfsdfsdf___fengexian____dsfdfdsfdsfs")
 #         count += 1
 #         continue
 #    print(line)
 #    count += 1

 #print(f.read(5))#读五个字符
 #print(f.tell())#告诉你文件句柄的指针打印出来 按字符个数计数
 #f.seek(0)#回到光标的开始位置  0可以是其他前面的会被删除显示
 #print(f.readline())
 #print(f.encoding)#打印文件编码
 #print(f.fileno()) #返回一个编号,一个接口,调用操作系统文件的IO
 #print(f.name)#打印文件名字
 #print(f.isatty())#终端 tty
 #print(f.readable())#判断文件是否可读
 #print(f.writable())#判断文件是否可写
 #print(f.flush())#刷为了解决文件存在内存然后恶意关闭,其实他是有个内存值,当达到了这个值会直接写到硬盘里面
 #f = open("yesterday.txt",'a',encoding="utf-8")

 #print(f.closed) #判断文件是否关闭
 #f.truncate(10)#本意截断的意思 不写就是清空 从10往后截断 还需要跟a配合
 #f.close()

 #文件读写
 #f = open("yesterday.txt",'r+',encoding="utf-8") #以读和追加打开  a+追加读
 ##print(f.readline())
 #print(f.tell())
 #f.write("12456----duiaoi-------")
 #写读
 #f = open("yesterday.txt",'w+',encoding="utf-8") #先创建个文件再追加进去 rb读二进制文件 显示b'就是bytes文件
 #多用于网络传输,进制文件
 #f.write("12456----duiaoi-------")
 #print(f.tell())
 #f.seek(10)
 #print(f.tell())
 #print(f.readline())
 #f.write("wode tian a shenme iqnkguang ")
 #在原文件上的修改必须同字符,不然不能修改会把内容覆盖
 #ru r+u windows上\r回车,linux\n回车为了统一

 #硬盘修改文件方法
 #f = open("yesterday.txt",'r',encoding="utf-8")
 #f_new = open("yesterday.bak.txt",'w',encoding="utf-8")
 #for line in f:
 #    if "年少轻狂" in line:
 #        line = line.replace("年少轻狂","hahaha")
 #    f_new.write(line)
 #f.close()
 #f_new.close()

 #with 语法 可以不需要手动写关闭
 #with open("yesterday.txt",'r',encoding="utf-8") as f:
 #    for line in f:
 #        print(line.strip())
 #同时打开2个文件
 #with open("yesterday.txt",'r',encoding="utf-8") as f,\
 #      open("yesterday.bak.txt",'w',encoding="utf-8") as f_new:



python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)的更多相关文章

  1. PYTHON 学习笔记3 元组、集合、字典

    前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...

  2. python学习Day7 数据类型的转换,字符编码演变历程

    一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...

  3. python学习之路(2)---字符编码

    二进制编码 bin(300)    python计算二进制编码,十进制转2进制 一个二进制位就是1bit 1bit代表了8个字节,00001111 1bit  = 1bytes   缩写1b 1kb ...

  4. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  5. Python 基础-python-列表-元组-字典-集合

    列表格式:name = []name = [name1, name2, name3, name4, name5] #针对列表的操作 name.index("name1")#查询指定 ...

  6. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  7. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  8. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  9. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

随机推荐

  1. 【MySQL】使用Length和Cast函数计算TEXT类型字段的长度

    背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度 ...

  2. Factorization Machine因子分解机

    隐因子分解机Factorization Machine[http://www. w2bc. com/article/113916] https://my.oschina.net/keyven/blog ...

  3. spring aop 环绕通知around和其他通知的区别

    前言: spring 的环绕通知和前置通知,后置通知有着很大的区别,主要有两个重要的区别: 1) 目标方法的调用由环绕通知决定,即你可以决定是否调用目标方法,而前置和后置通知   是不能决定的,他们只 ...

  4. 无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件。[LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]

    这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果 ...

  5. 摇一摇js 实现

    if (window.DeviceMotionEvent) { window.addEventListener('devicemotion',deviceMotionHandler, false); ...

  6. http升https笔记

    证书申请的: 1.lets encrypt 国际公益项目发展很快的,不过在国内暂时有些支持度还不够高,如微信安卓版就不认lets encrypt的证书.跳转进去一直处于空白页状态 2.沃通证书  国内 ...

  7. 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

    测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...

  8. linux安装open block chain

    Compile the source code Step 1. 安装git sudo apt-get install git Step 2. 安装vagrant(ubuntu系统) 下载地址https ...

  9. getFields()和getDeclaredFields()的区别

    getFields()获得某个类的所有的公共(public)的字段,包括父类. getDeclaredFields()获得某个类的所有申明的字段,即包括public.private和proteced, ...

  10. Xamarin设备相关图片尺寸要求

    Xamarin设备相关图片尺寸要求   Xamarin跨平台开发,要兼顾iOS.Android.尤其是图片方面,各个平台有对应的不同要求.在iOS中,需要提供没有后缀(设备无关单位尺寸).@2x(双倍 ...