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

2024-04-29 00:01:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在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,然后返回我们计算的树X在上面的示例中,有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中实现这一点? 谢谢!你知道吗


Tags: orand元素示例列表数量returnmy
2条回答

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

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))

对不起,如果我不能解释清楚的要求。我通过一个循环找到了下面的解决方案。棘手的是我不知道我们可以在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

相关问题 更多 >