我想创建一个“for”循环(在Python 2中)。我有一个障碍列表和每个障碍,如果它们是真的(即存在并出现在列表中)我想将它们附加到一个名为“tests”的列表中并调用一个名为“obstacle_detection”的函数(它处理什么当检测到障碍物时发生)(我稍后使用“测试”)。这是一个更大的程序的一部分,我不能确定它是否正常工作,所以我想知道是否有人能够告诉我它是否有意义?或者告诉我一个更好的方法可能会这样做?
obstacles = [obstacle, obstacle1, obstacle2]
tests = []
counter = 0
for obstacle in obstacles:
tests.append(0)
tests[counter] = obstacle_detection(obstacle, pos)
counter = counter + 1
答案 0 :(得分:2)
您的代码可能有意义,具体取决于您定义obstacles
和obstacle_detection
的方式。
实际上,您可以这样编写代码:
tests = [obstacle_detection(obstacle, pos) for obstacle in obstacles]
它会自动创建一个新列表,其长度与obstacles
相同,并为每个obstacle_detection
填充obstacle
个值。