#2
zyb1593572021-03-25 15:06
#给你写了一点作为思路(现可判定6连,4连,3连),剩余的自己搞定哈。
def si(lst): #定义4连顺. for i in lst[:-1]: sub={i,i+1,i+2,i+3} if sub.issubset(lst): c=sorted(list(set(lst)-sub)) if c==[c[0],c[0]+1]: return "4_2" #四连+二连 return "4_1" #四连+单 return 0 #非四连. def liu(lst): #定义6连顺. lst.sort() if lst==[lst[0],lst[0]+1,lst[0]+2,lst[0]+3,lst[0]+4,lst[0]+5]: return '6_6' #6连顺 return 0 def san(lst): #定义三连函数 for i in lst[:-2]: sub={i,i+1,i+2} if sub.issubset(lst): c=sorted(list(set(lst)-sub)) if c==[c[0],c[0]+1,c[0]+2]: return "3_3" #三连+三连 if c[:2]==[c[0],c[0]+1] or c[1:3]==[c[1],c[1]+1]: return "3_2" #三连+二连 return "3_1" #三连+单 return 0 #非三连 def writefile(path_file:str ,data): with open(path_file,"a") as fw: fw.write(data) def classify(data): s=data.split(":")[1].strip() lst=list(map(int,s.split(",")))#把列表元素转换成int型. f=liu(lst) if f: #如果6顺,写入对应文件(6_6.txt) writefile(f+".txt",data) return f=si(lst) if f: #如果是4连,写入对应文件(4_x.txt) writefile(f+".txt",data) return f=san(lst) if f: #如果是3连,写入对应文件(3_x.txt) writefile(f+".txt",data) return if __name__ == "__main__": for data in open("./data.txt"): classify(data) |
数据文本(data.txt)中有N行数据,现要将冒号后面的数据进行分类,分类规则如下:
无连号:01,03,05,07,09,21 这种类型分为0类
单二连号:01,02,05,11,21,24 这种类型分为单二类
双二连号:01,02,14,15,17,22 这种类型分为双二类
三二连号:01,02,13,14,27,28 这种类型分为三二类
单三连号:01,02,03,11,15,17 这种类型分为单三类
双三连号:01,02,03,10,11,12 这种类型分为双三类
二连号+三连号:01,02,15,20,21,22 这种类型分为二+三类
二连号+四连号:01,02,18,19,20,21 这种类型分为二+四类
三连号+二连号:01,02,03,21,23,28,29 这种类型分为三+二类
四连号+二连号:001,02,03,04,21,22 这种类型分为四+二类
四连号:01,02,03,04,11,16,17 这种类型分为四类
五连号:01,02,03,04,05,17 这种类型分为五类
六连号:01,02,03,04,05,06 这种类型分为六类
每种分类独立用一个文本装。
以下是data.txt部分数据
A10A21A34A44A57A74:01,02,05,16,18,19
A2A11A27A30A45A60:01,02,06,08,12,19
A6A10A16A26A41A60:01,02,07,08,10,11
A1A7A14A35A48A56:03,06,17,18,19,30
A1A7A35A52A53A56:03,06,17,18,30,32
A26A33A52A56A63A74:03,06,17,20,21,22
A2A7A24A56A66A68:03,06,17,20,23,30
A2A5A38A55A63A74:05,12,16,19,21,33
A1A11A17A60A67A74:05,12,16,19,22,27
A2A9A17A46A56A57:05,12,17,19,21,27
A5A6A22A38A56A71:05,12,17,20,21,32
A3A7A20A30A60A63:06,08,10,12,18,23
A2A3A24A35A45A60:06,08,10,12,19,30
A4A27A36A38A47A51:06,08,10,14,17,22
A3A20A44A50A55A74:06,08,10,14,18,30
A2A23A28A30A34A55:06,08,10,15,26,28
A3A4A30A40A55A79:06,08,10,18,19,23
A1A24A26A64A70A77:08,19,20,22,23,33
A2A19A54A66A77A79:08,19,20,23,27,33
A13A18A30A60A62A72:09,10,11,12,18,23
A2A16A29A33A60A75:09,10,11,12,20,26
A5A7A18A58A63A79:14,17,19,20,23,33
A4A5A38A57A75A77:14,18,19,20,21,31
A5A8A9A28A44A57:14,18,19,21,25,27
A4A5A38A68A75A77:14,18,20,21,31,32
A1A5A26A50A60A68:14,20,22,23,30,32
A1A4A19A48A67A77:15,16,19,20,22,33