0

命令 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

我将不胜感激任何帮助:)

4

3 回答 3

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]
于 2014-03-17T16:04:56.407 回答
0

你所需要的只是一点分裂:

face = cmds.polyInfo(fe=True)[0]
[int(v) for v in face.split(':', 1)[-1].split()]

这获取cmds.polyInfo()方法的输出,获取第一个元素,获取第一个元素之后的所有内容:并将其拆分为空白。结果是一个字符串列表 ( ['48', '49', ...]),然后列表推导将其转换为整数列表。

于 2014-03-17T16:02:22.137 回答
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]
于 2014-03-17T16:02:23.607 回答