从5行中的列表列表中获取所有元素

时间:2013-08-15 11:21:11

标签: python

所以说我有一份清单

x = [['#', '#', '#', '#', '#'], ['#', '0', ' ', ' ', '#'], ['#', '#', '#', ' ', '#']]

假设我需要将其拆分为3行字符串,我该怎么做?

这是我怎么做的但是它不可扩展,比如我有更多的列表,那么我将不得不写出这么多的打印声明。我想到了一个for statment

print "".join(mlist[0])
print "".join(mlist[1])
print "".join(mlist[2])

我正在考虑这样的事情,但它不起作用

zert = ""
total = 0
for a in mlist:
     for b in a:
        if total < 6:
            print zert
            total = 0
            zert = ''
        zert += b

        total += 1

^上面的问题是我需要保存第一个,然后迭代它,但只是检查是否没有内置函数?我试过''。join(mlist),但是它确实有效,因为它列在列表中?

有更简单的方法吗?

4 个答案:

答案 0 :(得分:4)

您可以使用列表推导来加入列表:

print '\n'.join([''.join(inner) for inner in mlist])

list comprehension创建每个嵌套列表的字符串,然后我们将新的行列表加入到带有换行符的更大字符串中。

演示:

>>> mlist = [['#', '#', '#', '#', '#'], ['#', '0', ' ', ' ', '#'], ['#', '#', '#', ' ', '#']]
>>> print '\n'.join([''.join(inner) for inner in mlist])
#####
#0  #
### #

您也可以使用for循环:

for inner in mlist:
    print ''.join(inner)

答案 1 :(得分:1)

>>> orig_list = [['#', '#', '#', '#', '#'], ['#', '0', ' ', ' ', '#'], ['#', '#', '#', ' ', '#']]
>>> new_list = [ "".join(x) for x in orig_list ]
>>> new_list
['#####', '#0  #', '### #']
>>> print("\n".join(new_list))
#####
#0  #
### #

答案 2 :(得分:1)

使用目前为止所做的,直接打印它。

for a in mlist:
  print "".join(a)  

答案 3 :(得分:1)

或者最简单的

for a in x:
    print "".join(a)