Python复习(拾遗)3

一维数据格式化及其处理
        一维数据的表示
            如果数据间有序,使用列表类型
            for循环
            
            无序使用集合
            for循环
            
        一维数据的存储
            空格分隔,不换行
            缺点 数据中不能有空格
            
            逗号分隔
            缺点不能有英文逗号
            
            所以使用文章不会出现的特殊符号
        一维数据的处理
            存储文件>>>列表或者集合
            存储文件<<<列表或者集合
            
        复习.split方法
            """k jk ja ds f""".split()   #按照空格切割
            ['k', 'jk', 'ja', 'ds', 'f']
        
            """k jk ja ds f""".split("j")    #按照j切割
            ['k ', 'k ', 'a ds f']
            可见split把字符串切割为若干个字符串组成列表,依据内部元素进行分割。
            
            
            
        复习 .join方法对列表进行操作,转化为字符串
            a=["sdf","sdfsd","sdfdsa"]
            " ".join(a)
            'sdf sdfsd sdfdsa'
            
            a=["sdf","sdfsd","sdfdsa"]
            k="&".join(a)
            k
            'sdf&sdfsd&sdfdsa'
            k.split(&)==a
            True
                
            处理办法
                读入  结果呈现为列表
                    从空格分隔文件中读入数据
                        txt=open(fanme).read()
                        ls=txt.split()    """得到列表ls"""
                        f.close()
                    从特殊符号分隔的文件中读入数据(换了一种写法)
                        f=open("文件名")    """f是类型是 _io.TextIOWrapper """
                        txt=f.read()        """ txt类型是字符串     """
                        ls=txt.split("&")    """ 字符串的split方法把 字符串 化为 列表"""
                        f.close()         """_io.TextIOWrapper这个类型才能有open 和close功能,这里spyder提醒你了 """
                写入    结果得到字符串
                    采用空格分隔方式写入
                        ls=["中国","美国","日本"]
                        f=open(fname,"w")
                        f.write(" ".join(ls))  """写入一个字符串"""
                        f.close()
                    从特殊符号分隔写入
                        ls=["中国","美国","日本"]
                        f=open(fname,"w")
                        f.write("$".join(ls))
                        f.close()
                
二维数据格式化及其处理
    
        二维数据表示
            用列表来表示,用两层for循环来表示
        CSV数据存储格式
            国际通用一二维数据存储格式.csv
            没有空行,每行是一维数据,
            
            缺失保留逗号,逗号与数据之间没有额外空格,包含逗号的,加引号或者转义符
        
        二维数据的存储
            按照行列存储都可以
            一般的 列表按照先行后列,
            
        二维数据的处理
                读取
                    f=open("b.csv")
                    ls=[]
                    for i in f:     
                        i=i.replace("
","")    #和print(i,end="")作用相似,去掉换行符
                        i=i.split(",")
                        ls.append(i)
                    f.close()
                    通过这个例子发现,csv文件的行(列)很重要,for i in f中,i就是f的每一行
                    换句话说行(列)是组成csv文件的基本单位,迭代单元
                    重温split方法,split(<某符号>)就是按照某符号划分
                    划分为列表,元素变为字符串以逗号分隔 
                    
                写入
                    ls=[[],[],[]] #二维列表
                    f=open(fname,"w")
                    for item  in ls:
                        f.write(",".join(item)+"
")
                    f.close()
                    
                综合的例子
                    zs=[['第一行', '72', '7.69', '136.84'],
                     ['第二行', '53', '1.75', '0'],
                     ['第三行', '346', '4.87', '696.43']]
                    m=open("m.csv","w")
                    for i in zs:
                        a=",".join(i)+"
"
                        m.write(a)
                    m.close()
                    
                    
                    
                    m=open("m.csv","r")
                    zz=[]
                    for i in m:
                          i=i.replace("
","")
                          i=i.split(",")
                          zz.append(i)
                    m.close()
                二维数据逐一输出
                    zs=[['第一行', '72', '7.69', '136.84'],
                     ['第二行', '53', '1.75', '0'],
                     ['第三行', '346', '4.87', '696.43']]
                    
                    for row in range(len(zs)):
                        for l in range(len(zs[0])):   这里写0因为他的元素个数都一样
                            print(zs[row][l])

原文地址:https://www.cnblogs.com/xinqidian/p/10196654.html