python - 如何在数组中更改数组
问题描述
我使用数组并获得一维,如下所示
a=[(2, 1, [[0, 3]]), (5, 2, [[0, 2], [2, 3]]), (8, 3, [[0, 0], [2, 1], [3, 2]]), (10, 1, [[1, 3]]), (12, 4, [[0, 1], [1, 0], [2, 2], [3, 0]]), (15, 3, [[1, 1], [2, 0], [3, 1]])]
如何将其更改为二维
b=[(2, 1, [[0, 3]])
(5, 2, [[0, 2], [2, 3]])
(8, 3, [[0, 0], [2, 1],[3, 2]]),
(12, 4, [[0, 1], [1, 0], [2, 2], [3, 0]])]
然后转换为另一种方式,例如
c=[(2, 1, 03),(5, 2, 02, 23),(8, 3, 00, 21, 32),(12, 4, 01, 10, 22, 30)]
解决方案
如果我复制粘贴您的a
:
In [899]: a=[(2, 1, [[0, 3]]), (5, 2, [[0, 2], [2, 3]]), (8, 3, [[0, 0], [2,
...: 1], [3, 2]]), (10, 1, [[1, 3]]), (12, 4, [[0, 1], [1, 0], [2, 2], [3,
...: 0]]), (15, 3, [[1, 1], [2, 0], [3, 1]])]
ipython
漂亮地将其打印为:
In [900]: a
Out[900]:
[(2, 1, [[0, 3]]),
(5, 2, [[0, 2], [2, 3]]),
(8, 3, [[0, 0], [2, 1], [3, 2]]),
(10, 1, [[1, 3]]),
(12, 4, [[0, 1], [1, 0], [2, 2], [3, 0]]),
(15, 3, [[1, 1], [2, 0], [3, 1]])]
普通的 python 解释器可能会以相同的方式显示它,但这只是一个显示问题,而不是数据结构问题。
如果我定义一个函数,该函数采用内部元组之一并返回 2 个值的组合:
In [901]: def comb(alist):
...: return str(alist[0])+str(alist[1])
...:
我可以使用此列表理解将其应用于您的列表:
In [903]: [(i,j,*[comb(x) for x in k]) for i,j,k in a]
Out[903]:
[(2, 1, '03'),
(5, 2, '02', '23'),
(8, 3, '00', '21', '32'),
(10, 1, '13'),
(12, 4, '01', '10', '22', '30'),
(15, 3, '11', '20', '31')]
您可以编写自己的comb
函数。这似乎是最接近你的c
,除了引号。03
但是除了把它变成一个字符串之外,没有办法产生 a 。
推荐阅读
- java - 从服务器数据库中提取和使用数据的最佳方式?
- reactjs - 安全反应登录
- git - 依赖任务和拉取请求
- javascript - 如何在function.php文件-wordpress中的简码中使用sqli连接
- javascript - 是否可以从库中定位样式化组件的子组件?
- php - 使用 PHP 在 while 循环中显示单个列
- javascript - 如何隐藏最后三里形式的ul?
- javascript - Map 或 flatmap 的工作方式类似于 Javascript 中的 Array.prototype.join
- log4j2 - 将 prometheus LOG4j conf 从 XML 转换为属性文件
- c# - 如何使用 linq 从嵌套字典中选择所有值?