使用列表值创建二进制矩阵



我是python和堆栈溢出的新手。我需要创建一个二进制矩阵,如果客户存在于给定列表中,则值为1。例如:假设列表为[4,5,8]。我需要一个10x10的矩阵,除了矩阵[4,5],矩阵[5,4],矩阵[5,8],矩阵[8,5]和矩阵[4,8],矩阵[8,4]都是1。有简单的方法吗?谢谢你。

你有:

data = [4, 5, 8]

你计算:

matrix = [[int(c in data and r in data and c != r) for c in range(10)] for r in range(10)]

:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 0, 1, 0],
[0, 0, 0, 0, 1, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

上面显示的解决方案使用从零开始的索引。

相关内容

  • 没有找到相关文章

最新更新