以python列方式遍历和打印字符串

时间:2017-06-20 16:52:56

标签: python string

有没有办法在Python中打印字符串,以获得字符列?明智吗?

可能如下[[o n],[* o]] 输入在数组或列表中以矩阵形式的单词系列给出

上 *Ø 输出应该在列中如下所示

  1. o
  2. 没有

2 个答案:

答案 0 :(得分:1)

你可以这样做:

from itertools import zip_longest

strings = ['First,', 'long second,', 'and third!']

lines = zip_longest(*strings, fillvalue=' ')
for line in lines:
    print(''.join(line))

Fla
ion
rnd
sg 
t t
,sh
 ei
 cr
 od
 n!
 d 
 , 

zip_longest允许您对每个字符串进行迭代,将fillvalue空格添加到最短字符串。

list(lines)将是`[('F','l','a'),('i','o','n'),...]

然后我们可以通过连接每个元组中的字母来打印每一行。

您可以在列之间添加空格:

for line in lines:
    print('  '.join(line))

F  l  a
i  o  n
r  n  d
s  g   
t     t
,  s  h
   e  i
   c  r
   o  d
   n  !
   d   
   ,   

如果您不想打印*,只需将其替换为空格:

from itertools import zip_longest
strings = ['ant', '*oi', '**p']
lines = zip_longest(*strings, fillvalue=' ')


for line in lines:
    print(''.join(line).replace('*',' '))
# a    
# n o  
# t i p

答案 1 :(得分:-2)

当然,只需妥善安排你的指数:

li = [["a","b"],["c","d"]]
for i in range(len(li[0])):
    for j in range(len(li)):
        print(li[j][i],end='')
    print()

我不确定你的*在该列表中做了什么。从输出看起来你认为它是列表中的一个空位?