我有两个列表:x_label和l
x_label = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0]
l = [60, 20, 10]
我想使用如下所示的两个列表来打印条形图:
100|
90|
80|
70|
60| o
50| o
40| o
30| o
20| o o
10| o o o
0| o o o
我必须创建一个包含此条形图的单个字符串。我必须创建一个用于比较列表x_label和l的for循环,并且当x_label和l之间的元素相同时,它将从该点垂直向下的字符'o'添加到字符串中。此任务必须以迭代方式完成。
我以非重复的方式完成了任务。此代码可以帮助您回答我的问题:
f = 60
c = 20
a = 10
x_label = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0]
it = 0
ir = 0
ie = 0
bar_chart = ""
for i in x_label:
bar_chart += (str(i) + "|" +"\n").rjust(5)
if i == f - it:
it += 10
bar_chart = bar_chart.rstrip("\n")
bar_chart += " " + "o" + "\n"
if i == c - ir:
ir += 10
bar_chart = bar_chart.rstrip("\n")
bar_chart += " " + "o" + "\n"
if i == a - ie:
ie += 10
bar_chart = bar_chart.rstrip("\n")
bar_chart += " " + "o" + "\n"
print(bar_chart)
提前致谢!
我这样解决了您的问题:
l=[60,20,10]
x_label = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0]
bar_chart = ""
for i in x_label:
bar_chart += (str(i) + "|" +"\n").rjust(5)
for e in l:
if e>=i:
bar_chart = bar_chart.rstrip("\n")
bar_chart += " " + "o" + "\n"
print(bar_chart)
一个循环遍历列表x_label,第二个循环检查x_label的当前值是否小于l中的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句