【发布时间】:2020-03-26 09:39:26
【问题描述】:
一个例子:
example = [None, b'1', b'2', b'3', b'4', b'1', None, None, b'8', b'56', b'66', b'77', b'1', None]
我需要通过以下方式更改此列表中的值:bytes 应转换为 int,None 应转换为 0,并且每第 6 和第 7 个元素转换为 bool。预期输出:
expected_output = [0, 1, 2, 3, 4, True, False, 0, 8, 56, 66, 77, True, False]
我的尝试:
[int(value) if value else bool(value) if index in (5,6) else 0 for index, value in enumerate(example)]
结果:
[0, 1, 2, 3, 4, True, False, 0, 8, 56, 66, 77, 0, 0]
我知道这部分代码有问题:
[int(value) if value else bool(value) if index in (5,6) else 0 for index, value in enumerate(example)]
^
|
|
如何将每 6 个和第 7 个元素更改为 bool?
【问题讨论】:
标签: python type-conversion list-comprehension