将整数列表转换为二进制数字列表
创建一个函数,该函数将整数列表作为输入,并输出从 integertobinary()
函数获得的二进制数字列表。二进制数字列表出现的顺序应与输入整数列表的顺序匹配。
例如,如果函数的输入为 [14,3,8,5]
,则输出应为 [[1,1,1,0],[1,1], [1,0,0,0],[1,0,1]]
。
这是我到目前为止所做的:
def integertobinary(L):
for n in L:
y = []
while(n>0):
a=n%2
y.append(a)
n=n//2
y.reverse()
return y
print(integertobinary([5,6,7,8,9]))
结果,当我应该得到 [[1,1,1, 0],[1,1],[1,0,0,0],[1,0,1]]
。我做错了什么?
Create a function that takes as input a list of integers, and which outputs a list of the binary digit lists obtained from your integertobinary()
function. The order in which the binary digit lists appear should match the order of the list of input integers.
For example, if the input to your function is [14,3,8,5]
the output should be [[1,1,1,0],[1,1],[1,0,0,0],[1,0,1]]
.
Here is what I have done so far:
def integertobinary(L):
for n in L:
y = []
while(n>0):
a=n%2
y.append(a)
n=n//2
y.reverse()
return y
print(integertobinary([5,6,7,8,9]))
As a result, I am getting: [1, 0, 0, 1]
when I am supposed to get [[1,1,1,0],[1,1],[1,0,0,0],[1,0,1]]
. What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
原因似乎是您在每次迭代中清除了 y 的值。您需要创建另一个变量来存储所有值。代码可能是:
输出:
The reason seems to be that you clear the value of y in every iteration. You need to make another variable to store all the values. The code might be:
Output:
如果您不需要编写二进制转换逻辑,您可以用更简单的 Python 方式来完成此操作。只需使用 python 中的
format
或bin
函数即可。例如。
会满足确切的需要。
"04b"
给出一个二进制格式的值,最多填充 4 个前导零。给出输出
You can do this in a simpler pythonic way, if you don't have a requirement of writing binary conversion logic. Just use the
format
orbin
function in python for this.An eg.
would do the exact need.
"04b"
gives a binary formatted value with padding upto 4 leading zeroes.gives output
在一维列表上执行此操作的另一种方法可能是:
输出:
Another way to do this on a 1-D list could be:
Output: