如何解决尝试通过列表理解,映射或for循环实现功能
我是python的新手,并且我一直在尝试实现一个将格雷代码转换为二进制代码的功能,如图所示。 pseudocode。我尝试用列表理解来做到这一点:
g = [''.join(choice('01') for _ in range(li)) for _ in range(nvar)]
b = [[g[j][i] if i == 0 else b[j][i-1] ^ int(g[j][i],2) for i in range(li)] for j in range(nvar)]
有地图:
b = list((map((lambda b: b[0][0] = g[0][0] if i == 0 else b[0][i] = int(b[0][i - 1],2) ^ int(g[0][i],2) for i in range(li)),g)))
还有一个for循环:
def grayToBinary(g,nvar,li):
b = []
for i in range(0,nvar):
#b[i][0] = g[i][0]
b[i][0].append(g[i][0])
for j in range(1,li):
b[i][j].append(int(b[i][j-1],2) ^ int(g[i][j],2))
return b
我知道这些都是错误的,但是我找不到正确的答案。可以使用列表理解或映射来完成此操作吗?
预先感谢
解决方法
我认为这是您想要实现的目标:
Education
输出看起来像这样:
ID
,
使用keidakida的示例:
>>> [*itertools.accumulate([0,1,1],operator.xor)]
[0,0]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。