如何以特定方式打印字符串列表?

时间:2019-08-10 08:47:35

标签: python string list

给出了字符串列表,我必须以特定方式打印它们的元素。

假设L = ['RED', 'GREEN', 'BLUE']

输出应该为R G B E R L D E U E E N

4 个答案:

答案 0 :(得分:1)

简单的for循环即可完成工作。

L = ['RED', 'GREEN', 'BLUE']

s = ''
for i in range(max([len(x) for x in L])): #len of longest word in L
    for item in L:
        try:
            s += item[i] + ' '
        except IndexError:
            pass

print(s)

R G B E R L D E U E E N 

答案 1 :(得分:1)

这使用了一些高级概念,但它整洁:

from itertools import zip_longest, chain
L = ['RED', 'GREEN', 'BLUE']
print(''.join(chain(*zip_longest(*L, fillvalue=''))))
# 'RGBERLDEUEEN'

要在字母之间包含空格,可以改为:

' '.join(''.join(chain(*zip_longest(*L, fillvalue=''))))
# R G B E R L D E U E E N

答案 2 :(得分:1)

使用itertools的另一种解决方案:

from itertools import chain, zip_longest

l = ['RED', 'GREEN', 'BLUE']
print(*filter(bool, chain(*zip_longest(*l))))

答案 3 :(得分:0)

这可能可以通过嵌套的while-for循环来完成。像

length_of_longest_string = 0
for s in L:
    length_of_longest_string = max(len(s), length_of_longest_string)

i = 0
result_string = ""
while i < length_of_longest_string:
    for s in L:
        if i >= len(s):
            continue
        else:
            result_string += s[i] + " "
    i += 1

print(result_string)

,您可以使用初始的for循环找到最长字符串的长度。