【发布时间】:2017-07-02 14:47:55
【问题描述】:
我最近正在解决一个编码问题。它要求我将一个数组中的所有 0 移动到数组的末尾。像 [0, 1, 1, 0, 0, 1]->[1, 1, 1, 0, 0, 0]。
实际情况是原始数组中可能存在任何类型的数据,例如, [0, "A", 1 , 无, 假, 真, 0, 0, 20, 1, 0.0]
我正在做的是循环数组,比较是否为0,如果是,则将其放入另一个数组中。如果不是,则增加计数器,最后放入与计数器相同数量的 0。但是,它将布尔值 False 视为 0,所以我不能这样做,我只是好奇是否有一种方法可以将 False 与 0 分开,并在 Python 中作为 False 放入另一个数组中。 谢谢。
【问题讨论】:
-
这是一个要求算法设计的作业,还是您可以只使用按转速排序的作业?
-
False实现为0,但具有其他类型。所以,检查值和类型! -
@KlausD。试试这个:
isinstance(True, int) -
@cᴏʟᴅsᴘᴇᴇᴅ 那是因为
isinstance()也会检查超类型。请改用type(False) == int。 -
@KlausD。我同意,我的意思是仅仅检查类型是不够的......