我想在python 2.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]
问题是列表中可以有任意数量的元素,我想为每个元素计算树 X ,然后返回尽可能多的树 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中完成? 谢谢!
答案 0 :(得分:1)
在这种情况下,您可以使用列表推导将方法应用于列表的项目:
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))
答案 1 :(得分:0)
很抱歉,如果我无法清楚地解释要求。我用循环找出了下面的解决方案。棘手的是我不知道我们可以在python中使用+添加2个列表。我刚开始学习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