(优发娱乐平台) python多维元组如何全部转换成列表

代码如下:

a = 1,2,3,4,5,6,,7,8,9
b = lista
print b
for c in b: c = listc print c
print b

想把这个多维元组变成[[1,2,3],[4,5,6],[7,8,9]]
输出结果如下,仍然无法实现这种效果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

怎样才能将多维元组,全部转换成列表?


非常感谢大家的帮助,问题解决了,我来说说我的理解,如果有不对的地方,还请指正:
在使用for从序列中得到的每一个对象,事实上都是从原序列中复制了一份。因此对此对象进行处理时,只是处理了复制体,并没有影响到原序列。
如果需要对原序列做修改,有很多方法,下面是在评论中看到的一个比较简单易想的:

a = 1,2,3,4,5,6,,7,8,9
b = lista
print b
for c in b: b[b.indexc] = listc print c
print b

即直接对原序列进行更换,运行结果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
1, 2, 3
4, 5, 6
7, 8, 9
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

>>> a = 1,2,3,4,5,6,,7,8,9
>>> print maplist, a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

a = 1,2,3,4,5,6,,7,8,9
b = lista
b[:] = [listc for c in b]
print b

任意维度的tuple,稍作修改可以适应任意list, iterable:

def flattenxs: for x in xs: if isinstancex, tuple: for xx in flattenx: yield xx else: yield x a = 1,2,3,4,5,6,,7,8,9
print listflattena a = 1, 2, 3,4, 5, 6, 7, 8, 9
print listflattena

也凑个热闹吧 :

a = 1, 2, 3, 4, 5, 6, 7, 8, 9
b = []
for i in rangelena: b.appendlista[i]
print b

有一个非常轻量级也非常经典与方便的python库,叫jerk,只有4个api,对于这种类型转换的问题,用起来非常方便。一楼利用map处理是非常方便与得体的。但是若对于更加复杂或者其他的情况,则不好弄。
a = 1, 2, 3, 1, 2, 3, 1, 1, 1, set[1, 2], {1: tutorial}
对于这类数值类型转换问题,使用jerk中的xlist即可。
jerk 的四个api分别是:xlist, xtuple, xint, xlen

 #先来安装jerk库 $ pip install jerk #使用jerk中xlist的范例 $ python >>> from jerk import * >>> a = 1, 2, 3, 1, 2, 3, 1, 1, 1, set[1, 2], {1: tutorial} >>> print xlista >>> [[1, 2, 3], 1, 2, 3, [1, [1, 1], set[1, 2]], {1: tutorial}]

关于jerk的地址是Tutorial on github.

发表评论

电子邮件地址不会被公开。 必填项已用*标注