马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
非常感谢你在百忙之中抽空为我解答,以下是问题:
对文本中的数据冒号后面部分的数据进行分类:
1.从A0001冒号后面的6个数中每次抽取4个(取15次,即C(6,4)),将每次抽取出来的4个数对全部数据逐个查找,看是否有完全相同的,如有则将该行数据写入一个新建的文本中。
2.举例:比如在文本的第一行抽取的是02,06,24,29,在对全部数据逐个查找得到的结果输出到新建文本(新建文件名以抽取的4个数命名02,06,24,29.txt)中如下:
A0001:02,06,07,24,28,29
A0005:01,02,06,11,24,29
A0017:01,02,06,10,24,29
以下是文本的部分数据:
A0001:02,06,07,24,28,29
A0002:02,08,21,24,29,31
A0003:05,07,09,16,18,27
A0004:13,17,19,24,26,30
A0005:01,02,06,11,24,29
A0006:12,14,18,20,26,28
A0007:04,10,12,18,23,25
A0008:02,12,13,14,31,33
A0009:01,05,08,15,16,30
A0010:06,11,21,25,28,31
A0011:08,09,13,27,29,31
A0012:08,10,15,17,22,30
A0013:11,16,23,26,27,33
A0014:05,07,09,16,20,26
A0015:03,05,13,19,20,25
A0016:06,08,14,17,18,30
A0017:01,02,06,10,24,29
A0018:02,21,22,23,27,28
A0019:10,15,17,25,31,32
A0020:04,08,17,24,28,33
A0021:01,03,06,07,09,11
A0022:12,16,17,24,28,29
A0023:02,08,14,23,25,32
A0024:09,15,18,29,32,33
A0025:03,08,09,13,15,18
A0026:06,14,16,26,28,29
A0027:04,15,21,25,29,33
A0028:06,09,12,16,27,31
A0029:03,06,14,18,20,26
A0030:05,10,16,23,27,33
data = """A0001:02,06,07,24,28,29
A0002:02,08,21,24,29,31
A0003:05,07,09,16,18,27
A0004:13,17,19,24,26,30
A0005:01,02,06,11,24,29
A0006:12,14,18,20,26,28
A0007:04,10,12,18,23,25
A0008:02,12,13,14,31,33
A0009:01,05,08,15,16,30
A0010:06,11,21,25,28,31
A0011:08,09,13,27,29,31
A0012:08,10,15,17,22,30
A0013:11,16,23,26,27,33
A0014:05,07,09,16,20,26
A0015:03,05,13,19,20,25
A0016:06,08,14,17,18,30
A0017:01,02,06,10,24,29
A0018:02,21,22,23,27,28
A0019:10,15,17,25,31,32
A0020:04,08,17,24,28,33
A0021:01,03,06,07,09,11
A0022:12,16,17,24,28,29
A0023:02,08,14,23,25,32
A0024:09,15,18,29,32,33
A0025:03,08,09,13,15,18
A0026:06,14,16,26,28,29
A0027:04,15,21,25,29,33
A0028:06,09,12,16,27,31
A0029:03,06,14,18,20,26
A0030:05,10,16,23,27,33"""
# 加载 random 中的函数 sample 此函数用于随机选取列表中的 n 个元素
from random import sample
text = "A0001:02,06,07,24,28,29"
# split() 函数用于以分隔符号为规则分割字符串
# 字符串分割后以字符串形式储存于列表
nums = text.split(":")[-1].split(",")
# sample(nums,4) 表示从 nums 中随机选取 4 个不重复元素并返回一个列表
# sorted() 表示对列表进行指定要求的排序,这里用的 key 为按照 nums 顺序排序
# sorted() 有返回值
rand = sorted(sample(nums,4),key = nums.index)
print(rand)
for i in data.split("\n"):
# set() 函数为将列表或者元组等转换为集合,同时会去重,也就是相同元素只会保留一个
# issubset() 函数为判断前者是否为后者子集
# 特别说明下,如果函数名用 is 开头基本上就是判断函数,返回值为 True 或者 False
# subset 的意思为子集,issubset 就是判断是否为子集
# digit 的意思为数字,isdigit 就是判断是否为数字
# space 的意思为空格,isspace 就是判断是否为空格,同样的函数还有很多很多……
if set(rand).issubset(set(i.split(":")[-1].split(","))):
print(i)
|