@
Pagliacii def detect_paired(rows):
paired_rows = list(combinations(rows.keys(), 2))
# 你把 paired 这个变量换成一个字典来存储比较结果就好了。
# 比如以行数组成的元组作为 key,而 value 则是相同的次数。
# 这样只要每次发现相同的两行,就把 value 加一,就可以得到你想要的结果了。
paired = {}
value =1
i = 2
longest_column = max(rows.values(), key=lambda row: len(row))
while paired_rows and i < len(longest_column):
for pair in paired_rows[:]:
# print(pair)
if rows[pair[0]][:i + 1] == rows[pair[1]][:i + 1]:
# 以行数组成元组:pair
#print(paired.keys())
# 你应该先判断这两行是否已经记录过了,即是否存在于
# paired 这个字典里。如果字典里已有记录,那么就更新这个记录。
# 如果没有,那么就新增一个记录到字典里去。
if pair in paired.keys():
#if pair==paired[pair]:
value += 1
paired[pair]=value # 更新
elif pair not in paired.keys():
paired.update({pair: value})
print(f"L{pair[0]}==L{pair[1]}:{rows[pair[0]][:i + 1]}")
else:
paired_rows.remove(pair)
i += 1
return paired
添加了判断行数组是否存在,
我另外换了一串字符串,如下:
AAAAAABBBBBBABAABAABBBBABAAAAABABBAABBABABAAABBABAABAABDEFABBF
为什么达不到我想要的效果的,请问问题还出在哪里呢
按理说( 1,4 ),( 2,3 )不会有这么多呢?
我遇到的问题是怎么更新对应的字典里的键的值。
恳请你指点一下