python多维元组如何全部转换成列表
阿神
阿神 2017-04-17 13:01:59
[Python讨论组]
阿神
阿神

闭关修行中......

全部回复(5)
伊谢尔伦
>>> a = ((1,2,3),(4,5,6,),(7,8,9))
>>> print map(list, a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
PHP中文网
a = ((1,2,3),(4,5,6,),(7,8,9))
b = list(a)
b[:] = [list(c) for c in b]
print b
巴扎黑

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

def flatten(xs):
    for x in xs:
        if isinstance(x, tuple):
            for xx in flatten(x):
                yield xx
        else:
            yield x


a = ((1,2,3),(4,5,6,),(7,8,9))
print list(flatten(a))

a = ((1, 2, 3),((4, 5), (6)), ((7, 8, 9)))
print list(flatten(a))
PHP中文网

也凑个热闹吧 :)

a = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
b = []
for i in range(len(a)):
    b.append(list(a[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 xlist(a)
    >>> [[1, 2, 3], 1, 2, 3, [1, [1, 1], set([1, 2])], {1: 'tutorial'}]

关于jerk的地址是Tutorial on github.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号