在Python中,我有一个0和1的列表(可能很长),例如
L = [0,1,0,1,1,0,1,0,0,1]
我想在不使用循环的情况下翻转列表中的每个条目,例如,使0变为1,使1变为0。在
我的想法是:这个L可以看作是实数的二进制表示。所以我想把L变成0101101001
,然后我想有一些位操作可以直接做翻转工作。最后,我需要将翻转后的术语返回到list,即1010010110
到{
有没有一种方法可以在Python中实现这个想法(不使用numpy
)?这种方法会比循环快得多吗?这种方法是实现这个目标的最快方法吗?在
这是一个面试问题。我无法现场回答。我不允许使用numpy
这样的库。在
将列表转换为字符串,使用
str.translate
进行替换,然后将其转换回列表。在^{pr2}$
您也可以使用递归来迭代,而不需要循环
可以使用lambda和map来实现:
您可以使用列表理解和位异或运算符(^)来实现这一点:
相关问题 更多 >
编程相关推荐