我正在尝试基于输入数据集构建随机数据集。输入数据集由 856471 行组成,每行中有一对由制表符分隔的值。随机数据集中的任何条目都不能等于输入数据集中的任何条目,这意味着:
如果第 1 行中的对是“Protein1 Protein2”,则随机数据集不能包含以下对:
- “蛋白质 1 蛋白质 2”
- “蛋白质 2 蛋白质 1”
为了实现这一点,我尝试了以下方法:
data = infile.readlines()
ltotal = len(data)
for line in data:
words = string.split(line)
init = 0
while init != ltotal:
p1 = random.choice(words)
p2 = random.choice(words)
words.remove(p1)
words.remove(p2)
if "%s\t%s\n" % (p1, p2) not in data and "%s\t%s\n" % (p2, p1) not in data:
outfile.write("%s\t%s\n" % (p1, p2))
但是,我收到以下错误:
Traceback (most recent call last): File
"C:\Users\eduarte\Desktop\negcreator.py", line 46, in <module>
convert(indir, outdir) File "C:\Users\eduarte\Desktop\negcreator.py", line 27, in convert
p1 = random.choice(words) File "C:\Python27\lib\random.py", line 274, in choice
return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty
IndexError: list index out of range
我很确定这会奏效。我究竟做错了什么?提前致谢。