使用True / False表达式检查创建Python列表?

时间:2015-03-02 11:30:42

标签: python list if-statement expression

希望生成一个Python列表,该列表使用if语句来检查数字是偶数还是奇数。如果甚至将List值作为' 1'如果奇数将列表值取为' 0'。

迄今取得的进展:

List1 = [x表示范围内的x(0,99),如果x%2 == 0]

但是,这只会生成偶数列表。当我更改表达式以添加else检查时,我收到语法错误。任何帮助表示赞赏。

List1 = [1表示范围内的x(0,99),如果x%2 == 0则为0]

2 个答案:

答案 0 :(得分:3)

您正在使用过滤器,您希望使用条件表达式来改变左侧表达式

[1 if x % 2 == 0 else 0 for x in range(99)]

这可以简化为:

[1 - (x % 2) for x in range(99)]

答案 1 :(得分:2)

更改list_comprehension中存在的if else条件,如下所示。

>>> [1  if x % 2 == 0 else 0 for x in range(0,99)]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

这将为偶数打印1,为奇数打印0。