给出了字符串列表,我必须以特定方式打印它们的元素。
假设L = ['RED', 'GREEN', 'BLUE']
输出应该为R G B E R L D E U E E N
答案 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循环找到最长字符串的长度。