Python 无法从字符串生成输出差异

Python 无法从字符串生成输出差异,python,maya,Python,Maya,首先,我道歉,如果我的题目是错误的,因为我不知道如何用更好的方式表达它。我试图打印出列表中不包含单词Shape的项目,但根本无法获得输出。它产生了一些东西,但仍然是错误的 在下面的代码中,我已经写出了输出,但正如您在最后一行中看到的,它不是生成“group1”、“locator1”和“pCube1”,而是生成pCubeShape1 有人能给我一些建议吗?非常感谢 import maya.cmds as cmds newSel01 = cmds.ls(sl=True) # [u'group1',

首先,我道歉,如果我的题目是错误的,因为我不知道如何用更好的方式表达它。我试图打印出列表中不包含单词
Shape
的项目,但根本无法获得输出。它产生了一些东西,但仍然是错误的

在下面的代码中,我已经写出了输出,但正如您在最后一行中看到的,它不是生成
“group1”、“locator1”和“pCube1”
,而是生成
pCubeShape1

有人能给我一些建议吗?非常感谢

import maya.cmds as cmds

newSel01 = cmds.ls(sl=True)
# [u'group1', u'locator1', u'locatorShape1', u'pCube1', u'pCubeShape1']

if "Shape" in str(newSel01):
    if item in newSel01:
        print item
        # pCubeShape1

据我所知,您希望筛选出列表中不包含“形状”一词的所有项目:


据我所知,您希望筛选出列表中不包含“形状”一词的所有项目:


你就快到了。试一试

for item in newSel01:
    if "Shape" not in item:
        print item
选择列表中的每个条目,检查其中是否出现字符串“Shape”,然后打印它。当然,这将分别打印每个条目。您可以将项目附加到列表中,也可以使用列表理解来更加简洁

[x for x in newSel01 if "Shape" not in x]
您也可以使用
过滤器
方法

filter(lambda x: "Shape" not in x, newSel01)

你就快到了。试一试

for item in newSel01:
    if "Shape" not in item:
        print item
选择列表中的每个条目,检查其中是否出现字符串“Shape”,然后打印它。当然,这将分别打印每个条目。您可以将项目附加到列表中,也可以使用列表理解来更加简洁

[x for x in newSel01 if "Shape" not in x]
您也可以使用
过滤器
方法

filter(lambda x: "Shape" not in x, newSel01)

如果您试图从选择中获取变换,
ls
命令有一个参数

ls(sl=True, transforms=True)
将过滤掉任何形状

或者,论点是:

ls(sl=True, shapes=True)
我会做相反的事



这样就不需要任何字符串比较或正则表达式搜索。这主要是供参考的;所有其他答案都非常符合您的要求。

如果您试图从选择中获取转换,
ls
命令有一个参数

ls(sl=True, transforms=True)
将过滤掉任何形状

或者,论点是:

ls(sl=True, shapes=True)
我会做相反的事



这样就不需要任何字符串比较或正则表达式搜索。这主要是供参考的;所有其他答案都非常适合你的要求。

谢谢!这对我帮助很大!谢谢这对我帮助很大!