Python 3.x 如何将作为元素列表的字典的值转换为(坐标元组)的元组?
例如,我有这样一句话:Python 3.x 如何将作为元素列表的字典的值转换为(坐标元组)的元组?,python-3.x,Python 3.x,例如,我有这样一句话: {'CUBE': ['0,0;0,1;1,0;1,1'], 'Z': ['0,0;1,0;1,1;2,1', '0,0;0,1;1,-1;1,0'], 'S': ['0,0;0,1;1,1;1,2', '0,0;1,-1;1,0;2,-1'], etc etc} 我的目标是将[0,0;0,1;1,0;1,1']转换为:((0,0)、(0,1)、(1,0)、(1,1))将[0,0;0,1;1,0;1,1']转换为((0,0)、(0,1)、(1,0)、(1,
{'CUBE': ['0,0;0,1;1,0;1,1'],
'Z': ['0,0;1,0;1,1;2,1', '0,0;0,1;1,-1;1,0'],
'S': ['0,0;0,1;1,1;1,2', '0,0;1,-1;1,0;2,-1'],
etc etc}
我的目标是将[0,0;0,1;1,0;1,1']转换为:((0,0)、(0,1)、(1,0)、(1,1))将
[0,0;0,1;1,0;1,1']
转换为((0,0)、(0,1)、(1,0)、(1,1))
可以按如下方式完成:
l=['0,0;0,1;1,0;1,1']
>>>tuple(tuple(int(x2)表示x1中的x2。拆分(','))表示l[0]中的x1。拆分(';'))
((0, 0), (0, 1), (1, 0), (1, 1))
此拆分
将str
拆分为
以获取值对。然后,它在,
处对每一对(仍然是str
)进行拆分,以获取该对的单个值,将这些值转换为int
,并将它们打包成一个元组。最后,它将所有的元组
打包成一个元组
现在,将上述内容应用于您的指令
:
>d={'CUBE':['0,0;0,1;1,0;1,1'],
…'Z':['0,0;1,0;1,1;2,1','0,0;0,1;1,-1;1,0'],
…'S':['0,0;0,1;1,1;1,2','0,0;1,-1;1,0;2,-1']
>>>
>>>对于d.项()中的k,v:
... 对于枚举(v)中的i,e:
... d[k][i]=tuple(tuple(int(x2)表示x1中的x2.split(','))表示e.split(';'))中的x1.split(','))
...
>>>d
{'CUBE':[((0,0)、(0,1)、(1,0)、(1,1))],'Z':[((0,0)、(1,0)、(1,1)、(2,1)),((0,0)、(0,1)、(1,1))],'S':[((0,0)、(0,1)、(1,1)、(1,2)),((0,0)、(1,1)、(1,1)、(1,0)、(2,1))]
应该清楚外循环的作用。内部循环更新列表中的每个str
,它们是dict的值
s,成为元组
的所需元组。为了让我们帮助您,您必须展示您的努力。然而,转储所有代码会适得其反。请编辑您的问题以显示最小的可复制集。有关详细信息,请参阅。