Python - 转换列表

时间:2014-03-17 15:59:02

标签: python maya mel

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

如果有任何帮助,我将不胜感激:)

3 个答案:

答案 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]