Python 换位行,其中行数和长度取决于列表
我正在尝试生成两组字符串图像。 第一 第二 请注意,第二个图像与第一个图像相同,只是逆时针旋转 第一幅图像中的行数和每行的长度基于一个列表,该列表可以是任意长度,并且由严格的正数组成。在本例中,我们的列表是:Python 换位行,其中行数和长度取决于列表,python,python-3.x,string,design-patterns,Python,Python 3.x,String,Design Patterns,我正在尝试生成两组字符串图像。 第一 第二 请注意,第二个图像与第一个图像相同,只是逆时针旋转 第一幅图像中的行数和每行的长度基于一个列表,该列表可以是任意长度,并且由严格的正数组成。在本例中,我们的列表是: list = [3, 5, 2, 1] 我在获取第二张图像时遇到一些问题。对于第一个图像,我使用了以下功能: for e in list: print(int(e) * '% ' 这似乎有效。我只是不知道如何处理第二张图片。关于生成每一行,我有一些想法,在这里我可以找到列表中最高的
list = [3, 5, 2, 1]
我在获取第二张图像时遇到一些问题。对于第一个图像,我使用了以下功能:
for e in list:
print(int(e) * '% '
这似乎有效。我只是不知道如何处理第二张图片。关于生成每一行,我有一些想法,在这里我可以找到列表中最高的元素,在这个示例列表[1]中找到它的索引,然后在任意一侧合并,这取决于它到列表开头和结尾的距离以及从那里开始的距离,但我不确定
如有任何建议,将不胜感激
谢谢 你可以试试这个
生成第一个图像
a=[['%' for i in range(j)] for j in [3,5,2,1]]
for i in a:
print(*i)
% % %
% % % % %
% %
%
from itertools import zip_longest #use izip_longest for python2
b=list(zip_longest(*a,fillvalue=' '))[::-1]
for i in b:
print(*i)
%
%
% %
% % %
% % % %
您可以从第一个图像生成第二个图像
a=[['%' for i in range(j)] for j in [3,5,2,1]]
for i in a:
print(*i)
% % %
% % % % %
% %
%
from itertools import zip_longest #use izip_longest for python2
b=list(zip_longest(*a,fillvalue=' '))[::-1]
for i in b:
print(*i)
%
%
% %
% % %
% % % %
在这里找到最大的数字5。第二幅图像中的第一行表示该高度5,第二行表示高度4,依此类推。对于每一列,只显示一个百分比,其中列高度等于或大于当前行的高度。学究:这里没有显示转置。第一个输出中的第二行有五个%s,第二个输出中的第二列只有四个%s。第二个输出中是否应该有第五个与列表中的计数匹配?