Python - 转换列表
命令 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
你只需要稍微分一下:
face = cmds.polyInfo(fe=True)[0]
[int(v) for v in face.split(':', 1)[-1].split()]
这段代码的作用是,先获取cmds.polyInfo()
方法的输出,然后拿到第一个元素,再从第一个:
后面的内容开始,按照空格进行分割。最后得到的是一个字符串的列表(比如['48', '49', ...]
),接着通过列表推导式把这些字符串转换成整数的列表。
1
alist=[u'FACE 64: 48 49 50 51 52 54 64 74 84 94 104 \n']
使用 map 和 join:
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]
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]