我试图在一个列表中添加一个等价于变量数的False数,如果变量不为0,它就起作用。我试图在变量为0时添加一个“else”语句,但它不起作用。
下面是我的累:
floors = 5
blocked_floor = [False for i in range(floors) if (floors > 0) else False]
blocked_floor1 = [False for i in range(floors) if (floors > 0) else False for i in range(1)]
关于这个问题有很多主题,但是我试了所有的方法,都没有效果。我在“其他”上有一个synthax错误。
你对这个问题有什么想法吗?
2条答案
按热度按时间z9smfwbn1#
你的语法确实错了。
取代:
您想要:
或者:
不同之处在于,在第一种情况下,
blocked_floor1
将是False
,而在第二种情况下,它将是[False]
。我认为第一种情况更可取,因为如果楼层是1或0,否则你将无法计算高度。但是,除了语法错误之外,整个代码似乎毫无意义,最后,您在一个列表中有一个
floors
乘以False
的列表。所以,你不妨:
这可能是因为你没有提供一个你实际上试图解决的问题的例子。
xkftehaa2#
出现语法错误是因为您需要完成条件,然后继续迭代。您需要执行以下操作:
另外,我认为你不需要条件,因为不管floor的值是多少,你都只需要加上False。下面的代码做了同样的事情,但更简单:
我不太清楚您要对blocked_floor1执行什么操作。
我还发现以下教程页面很有帮助:https://riptutorial.com/python/example/767/conditional-list-comprehensions