Python:检查列表的长度,并在第一个元素之后为每个项或子列表运行方法

Python:检查列表的长度,并在第一个元素之后为每个项或子列表运行方法,python,python-2.7,Python,Python 2.7,我想在Python2.7中执行如下操作 例1: mylist = ['or', 'A', 'B', 'C'] tree1 = my_method(mylist[1]) #A tree2 = my_method(mylist[2]) #B tree3 = my_method(mylist[3]) #C return ['or', tree1, tree2, tree3] 问题是列表中可以有任意数量的元素,我想计算每个元素的treeX,然后返回我们计算的treeX。在上面的示例

我想在Python2.7中执行如下操作

例1:

mylist  = ['or', 'A', 'B', 'C']

tree1 = my_method(mylist[1])   #A
tree2 = my_method(mylist[2])   #B 
tree3 = my_method(mylist[3])   #C

return ['or', tree1, tree2, tree3]
问题是列表中可以有任意数量的元素,我想计算每个元素的treeX,然后返回我们计算的treeX。在上面的示例中,有3棵树,所以返回3棵树

例2:

mylist  = ['or', ['and','A','B','C'], 'B']

tree1 = my_method(mylist[1])   #['and','A','B','C']
tree2 = my_method(mylist[2])   #B

return ['or', tree1, tree2]
在上面的示例中,有2棵树,因为有2个子元素,所以有2棵树作为回报

如何在python中实现这一点?
谢谢

如果我不能清楚地解释这个要求,很抱歉。我通过一个循环找到了下面的解决方案。棘手的是,我不知道我们可以在python中使用+添加两个列表。我刚开始学习python

            length = len(prop)
            i = 1
            tmp = []
            op = 'or'
            while i < length:
                tree = implies(prop[i]) 
                tmp.append(tree)
                i = i + 1

            answer = [op] + tmp [:]
            return answer
length=len(道具)
i=1
tmp=[]
op='或'
而我<长度:
tree=暗示(prop[i])
追加(树)
i=i+1
答案=[op]+tmp[:]
回覆

在这种情况下,您可以使用列表理解将方法应用于列表中的项目:

def process_list(mylist):
    return mylist[:1] + [my_method(item) for item in mylist[1:]]

mylist  = ['or', ['and','A','B','C'], 'B']
print(process_list(mylist))

下面的投票者,请添加评论以帮助OP发布一个更好的问题。列表理解确实有助于减少代码量并使我的程序更干净。谢谢!