Python:检查列表的长度,并在第一个元素之后为每个项或子列表运行方法
我想在Python2.7中执行如下操作 例1: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。在上面的示例
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发布一个更好的问题。列表理解确实有助于减少代码量并使我的程序更干净。谢谢!