Ce que j'essaye de faire est ceci. J'ai un dictionnaire aménagé en tant que tel:Renommer les clés/valeurs du dictionnaire en python
legJointConnectors = {'L_hip_jnt': ['L_knee_jnt'], 'L_knee_jnt': ['L_ankle_jnt'], 'L_ankle_jnt': ['L_ball_jnt'], 'L_ball_jnt': ['L_toe_jnt']}
Ce que je veux être en mesure de faire itérer, mais changer la L_ à R_. Voici comment j'ai essayé de le faire, mais il a échoué, car il attend une chaîne et je lui passe une liste.
for key, value in legJointConnectors.iteritems():
if side == 'L':
cmds.connectJoint(value, key, pm=True)
else:
key = re.sub('L_', 'R_', key)
value = re.sub('L_', 'R_', value)
cmds.connectJoint(value, key, pm=True)
De toute évidence, je ne le fais pas correctement, alors comment puis-je faire cela? Dois-je créer un dictionnaire vide et le remplir avec les données nécessaires à la volée? Ou y a-t-il une meilleure façon de le faire? Merci pour l'aide!
[edit] Le côté if == 'L' teste pour voir de quel côté nous travaillons actuellement. Ce script est utilisé au sein de Maya, donc je crée des articulations basées sur le côté, puis je les connecte.
Basé de la suggestion de KennyTM J'ai essayé ceci:
for key, value in legJointConnectors.iteritems():
if side == 'L':
cmds.connectJoint(value, key, pm=True)
else:
for v in value:
value = 'R_' + v[2:]
for k in key:
key = 'R_' + k[2:]
print key
print value
mais alors qu'il retourne la bonne clé, la valeur revient comme R_
double possible de http://stackoverflow.com/questions/1076536/replacing -values-dans-un-python-liste-dictionnaire – leoluk
@leoluk J'ai regardé cela, mais il ne semble pas que nous demandions la même chose. Cet utilisateur voulait remplacer des valeurs entières, où je veux simplement remplacer une partie de la valeur. –