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