在python中重命名字典键/值

2024-04-28 21:13:46 发布

您现在位置: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']}

我想要做的是迭代这个,但是把L悱改为R悱。下面是我尝试的方法,但是失败了,因为它需要一个字符串,而我给它传递了一个列表。在

^{pr2}$

显然我做得不对,那我该怎么做呢?我是否应该创建一个空字典并在运行中填充必要的数据?或者有更好的方法吗?谢谢你的帮助!在

[编辑]if-side=='L'正在测试,以查看我们当前在哪一方工作。该脚本正在Maya中使用,因此我将基于边创建关节,然后将它们连接起来。在

根据KennyTM的建议,我试了一下:

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

但是当它返回正确的键时,值返回为R\


Tags: 方法keyinforif字典valueside
1条回答
网友
1楼 · 发布于 2024-04-28 21:13:46

然后对列表中的每个元素进行替换。在

for key, value in legJointConnectors.iteritems():
    if side != 'L':
        key = 'R_' + key[2:]
        value = ['R_' + v[2:] for v in value]
    cmds.connectJoint(value, key, pm=True)

(顺便说一句,最好使用v.replace('L_', 'R_'),或者只使用'R_' + v[2:]来执行替换,然后使用regex进行替换。)

相关问题 更多 >