![](/img/trans.png)
[英]Is there a built-in python function to count bit flip in a binary string?
[英]Lambda function to flip bits(1 to 0 and 0 to 1) in binary
我一直在解决hackerrank问题,目前在我应该将数字转换为二进制的问题中,反转每个数字。
假设有一个 integer n,我使用以下方法将其转换为二进制:
g = '{0:032b}'.format(n)
现在我已经使用正常的 for 循环反转了 0 和 1,但是,我想使用 lambda function 和/或单行 for 循环来做同样的事情。
我试过这样做:
f = [lambda x: x = '1' if x == '0' else x = '1']
res = [f(x) for x in g]
和
res = [x = '1' for x in n if x == '0' else x = '0']
但我似乎没有正确理解语法。 另外,如果还有其他更好更短的方法,请不吝赐教。
任何帮助,将不胜感激!
你可以这样做,
In [1]: l = ["0", "1", "0", "0", "1"]
In [2]: f = lambda x: "1" if x == "0" else "0"
In [3]: [f(i) for i in l]
Out[3]: ['1', '0', '1', '1', '0']
分配 lambda 是一种不好的做法,您可以使用 function 本身。
In [4]: def f(x):
...: if x == "0":
...: return "1"
...: else:
...: return "0"
In [5]: [f(i) for i in l]
Out[5]: ['1', '0', '1', '1', '0']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.