从列表中删除特定元素

时间:2014-03-10 10:22:38

标签: list

首先,我选择名为hairSystem1Follicles的组并列出它 然后我用删除的东西列出一个空列表

cmds.select('hairSystem1Follicles',hi=1)
list=cmds.ls(sl=1)
listtodelete=[]

我尝试了两件事,但两件都没用。 我希望用名称curve1 curve2等来隔离列表中的所有元素而不是#列表中名为loftfolicle *的其他内容 尝试1

for e in list:
    if e=='curve*': #Find which ones are Write nodes
        listtodelete.append(e)

尝试2

for e in list:
    if 'curve'+'*' in e:
        listtodelete.append(e)

似乎都没有成功。

1 个答案:

答案 0 :(得分:0)

我不知道您使用哪些函数来获取列表(我会重命名您的列表,因为“list”是内置列表的类型名称),但如果您的列表只包含字符串,则此代码应该有效:

for e in myList: //renamed list
    if e.lower().startswith("curve"):
        listtodelete.append(e)

此代码检查,如果e的小写版本以“curve”开头,那么诸如“curve2”,“curve4”,“CuRvEandsoOn”之类的内容将附加到listtodelete。如果有更多条件要检查e,请告诉我。顺便说一句,如果e不是字符串,可能是因为你迭代了一个对象列表,并且你得到了“e的名字”(要检查的实际字符串),例如: e.name(),只需在for循环的开头添加这行代码:

e = e.name() //or something else, if e is no string, but e.name() is