使用 True/False 表达式检查创建 Python 列表?
Create Python List using a True/False expression check?
希望生成一个 Python 列表,该列表使用 if
语句来检查数字是偶数还是奇数。如果偶数取列表值“1”,如果奇数取列表值“0”。
迄今为止的进度:
List1 = [x for x in range(0,99) if x % 2 == 0]
但是,这只会生成一个偶数列表。当我更改表达式以添加 else 检查时,出现语法错误。任何帮助表示赞赏。
List1 = [1 for x in range(0,99) if x % 2 == 0 else 0]
更改 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。
您正在使用过滤器,您希望使用 条件表达式:
来更改左侧表达式
[1 if x % 2 == 0 else 0 for x in range(99)]
这可以简化为:
[1 - (x % 2) for x in range(99)]
希望生成一个 Python 列表,该列表使用 if
语句来检查数字是偶数还是奇数。如果偶数取列表值“1”,如果奇数取列表值“0”。
迄今为止的进度:
List1 = [x for x in range(0,99) if x % 2 == 0]
但是,这只会生成一个偶数列表。当我更改表达式以添加 else 检查时,出现语法错误。任何帮助表示赞赏。
List1 = [1 for x in range(0,99) if x % 2 == 0 else 0]
更改 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。
您正在使用过滤器,您希望使用 条件表达式:
来更改左侧表达式[1 if x % 2 == 0 else 0 for x in range(99)]
这可以简化为:
[1 - (x % 2) for x in range(99)]