命令 cmds.polyInfo (fe=True) 输出:
[u'FACE 64: 48 49 50 51 52 54 64 74 84 94 104 \n']
如何将其转换为此类列表?
[48, 49, 50, 51, 52, 54, 64, 74, 84, 94, 104]
我怀疑有必要使用 re.findall
我将不胜感激任何帮助:)
alist=[u'FACE 64: 48 49 50 51 52 54 64 74 84 94 104 \n']
使用地图和连接:
map(lambda x:int(x), "".join(alist).split(':')[1].split())
使用列表理解:
[int(x) for x in "".join(alist).split(':')[1].split()]
输出:
[48, 49, 50, 51, 52, 54, 64, 74, 84, 94, 104]
你所需要的只是一点分裂:
face = cmds.polyInfo(fe=True)[0]
[int(v) for v in face.split(':', 1)[-1].split()]
这获取cmds.polyInfo()
方法的输出,获取第一个元素,获取第一个元素之后的所有内容:
并将其拆分为空白。结果是一个字符串列表 ( ['48', '49', ...]
),然后列表推导将其转换为整数列表。
无需使用re
模块,只需使用str.split
:
In [78]: lst=[u'FACE 64: 48 49 50 51 52 54 64 74 84 94 104 \n']
In [79]: [int(i) for i in lst[0].split(':')[1].split()]
Out[79]: [48, 49, 50, 51, 52, 54, 64, 74, 84, 94, 104]