3

所以说我有一个列表列表

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

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

这是我可以做到的,但它是不可扩展的,比如说我有更多的列表,那么我将不得不写这么多的打印语句。我想了一个for语句

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

4 回答 4

4

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

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

列表推导式创建每个嵌套列表的字符串,然后我们将新的行列表连接成带有换行符的更大字符串。

演示:

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

您也可以使用for循环:

for inner in mlist:
    print ''.join(inner)
于 2013-08-15T11:26:52.277 回答
1

使用你目前拥有的东西,直接打印它。

for a in mlist:
  print "".join(a)  
于 2013-08-15T11:28:28.097 回答
1

或者最简单的

for a in x:
    print "".join(a)
于 2013-08-15T11:29:30.380 回答
1
>>> orig_list = [['#', '#', '#', '#', '#'], ['#', '0', ' ', ' ', '#'], ['#', '#', '#', ' ', '#']]
>>> new_list = [ "".join(x) for x in orig_list ]
>>> new_list
['#####', '#0  #', '### #']
>>> print("\n".join(new_list))
#####
#0  #
### #
于 2013-08-15T11:27:01.697 回答