2 votes

Changer la valeur d'une partie d'une chaîne dans une liste obtenir la somme d'une chaîne

Je travaille sur l'utilisation d'itertools pour obtenir une liste de combinaisons, mais je suis coincé avec la manipulation de ces combinaisons une fois que je les ai. Voici ce que j'ai :

k_instances = 3 #Instances of lysine
k_modifications = {'Hydroxylation', 'Carboxylation', #Modifications applicable to lysine
                   }

k_combinations = itertools.combinations_with_replacement(k_modifications, k_instances) #Possible modifications assigned

k_comb_list = list(k_combinations) #Convert combinations to a list

k_comb_list_str = [k_comb_list[i:i+k_instances] for i in range(0, len(k_comb_list), k_instances)]

for i in range(len(k_comb_list_str)):
    k_comb_list_str[i] = 16 if k_comb_list_str[i] == 'Hydroxylation' else k_comb_list_str[i]

    print(k_comb_list_str)

En exécutant ceci, j'obtiens :

 [[('Carboxylation', 'Carboxylation', 'Carboxylation'), ('Carboxylation', 'Carboxylation', 'Hydroxylation'), ('Carboxylation', 'Hydroxylation', 'Hydroxylation')], [('Hydroxylation', 'Hydroxylation', 'Hydroxylation')]]

Mon idée est de remplacer chacune de ces variables par leur masse, par exemple remplacer toutes les occurrences de Carboxylation par 16. En faisant cela, je voudrais obtenir une liste de chaînes de caractères, quelque chose comme ceci :

[[(16,16,16),(16,16,2),(16,2,2)...]]

J'obtiendrais alors la somme de chacune des cordes :

[[(48),(32),(20)]]

Et ensuite avoir essentiellement une liste de valeurs possibles en fonction des combinaisons.

Je suis sûr qu'il existe un moyen plus simple d'effectuer cette opération, donc toute suggestion sur la façon de l'exécuter serait appréciée. J'ai essayé de remplacer chaque valeur à l'aide d'instructions else if, mais cela ne fonctionne pas car je n'arrive pas à trouver comment manipuler la chaîne de caractères. Je ne peux donc que rechercher la chaîne de caractères, ce qui va à l'encontre du but recherché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X