命令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
如果有任何帮助,我将不胜感激:)
答案 0 :(得分:1)
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]
答案 1 :(得分:0)
你需要的只是一点点分裂:
face = cmds.polyInfo(fe=True)[0]
[int(v) for v in face.split(':', 1)[-1].split()]
这将获取cmds.polyInfo()
方法的输出,获取第一个元素,获取第一个:
之后的所有内容并将其拆分为空格。结果是一个字符串列表(['48', '49', ...]
),然后列表推导变成一个整数列表。
答案 2 :(得分:0)
无需使用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]