def frequency(couple2, pair_no_change, fq):
updated_pairs = list(list())
for pair in couple2[0:5]:
if pair != pair_no_change:
pair[0] *= fq
pair[1] *= fq
updated_pairs.append([pair[0], pair[1]])
else:
continue
return updated_pairs
用于:
for x in sorted_couple[0:78]:
c = randrange(78)
couple2.append(sorted_couple[c])
updated_pairs = frequency(couple2, pair_no_change, fq)
for t in updated_pairs:
for i ,j in zip(list(t[0]), list(t[1])):
#print ([i,j])
couple.append([i,j])
并返回名为updated_pairs的列表(list())。输出是:
[['CCCCCCCCCC', 'SSSSSSSSSS'], ['LLLLLLLLLL', 'AAAAAAAAAA'], ['FFFFFFFFFF', 'YYYYYYYYYY'], ['NNNNNNNNNN', 'LLLLLLLLLL'], ['GGGGGGGGGG', 'NNNNNNNNNN']]
问题是当两个相同的夫妻被随机选择时,输出分歧给我一些类似的东西:
[['GGGGGGGGGG', 'NNNNNNNNNN'], ['PPPPPPPPPP', 'MMMMMMMMMM'], ['KKKKKKKKKK', 'DDDDDDDDDD'], ['DDDDDDDDDD', 'YYYYYYYYYY'], ['DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD', 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY']]
我试图从昨天开始解决这个问题......任何帮助都会很棒!谢谢
答案 0 :(得分:1)
执行pair[0] *= fq
之类的内容更改值,因此如果稍后再次使用该值,则会有所不同。为了安全起见,最好做pair0 = pair[0]*fq
之类的事情,并使用新的pair0
变量进行追加。
所以改成它:
def frequency(couple2, pair_no_change, fq):
updated_pairs = list(list())
for pair in couple2[0:5]:
if pair != pair_no_change:
pair0 = pair[0] * fq
pair1 = pair[1] * fq
updated_pairs.append([pair0, pair1])
else:
continue
return updated_pairs
或者更好的是:
def frequency(couple2, pair_no_change, fq):
updated_pairs = list(list())
for pair0, pair1 in couple2[0:5]:
if [pair0, pair1] == pair_no_change:
continue
updated_pairs.append([pair0*fq, pair1*fq])
return updated_pairs