3
所以基本上我有一個字符串:改變字符串的特定部分在python(在進化樹的更新引導值)
string_1 = '(((A,B)123,C)456,(D,E)789)135'
含自舉值的進化樹是括號記(不是真正的問題很重要,但如果有人想知道)。此示例樹包含四個與四個引導值(每個左括號後面的數字)的關係。我在列表中列出了以下每個關係:
list_1 = [['(A,B)', 321], ['((A,B),C)', 654],
['(D,E)', 987], ['(((A,B),C),(D,E))', 531]]
每個都包含一個關係及其更新的引導值。我需要做的就是創建最後一個字符串:
final = '(((A,B)321,C)654,(D,E)987)531'
其中所有引導值都更新爲list_1中的值。我有一個函數刪除引導值:
import re
def remove_bootstrap(string):
matches = re.split(r'(?<=\))\d+\.*\d*', string)
matches = ''.join(matches)
return matches
和密碼隔離的關係:
list_of_bipart_relationships = []
for bipart_file in list_bipart_files:
open_file = open(bipart_file)
read_file = open_file.read()
length = len(read_file)
for index in range(1, length):
if read_file[index] == '(':
parenthesis_count = 1
for sub_index in range(index + 1, length):
if read_file[sub_index] == '(':
parenthesis_count += 1
if read_file[sub_index] == ')':
parenthesis_count -= 1
if parenthesis_count == 0:
bad_relationship = read_file[index:sub_index + 1]
relationship_without_values = remove_length(bad_relationship)
bootstrap_value = extract(sub_index, length, read_file)
pair = []
pair.append(bootstrap_value)
pair.append(relationship_without_values)
list_of_bipart_relationships.insert(0, pair)
break
,我茫然很完全。一旦嵌套關係的引導值更新後,我無法弄清楚如何讓程序識別更大的關係。任何幫助將不勝感激!