[英]How to compare two lists in python iteratively?
我有两个列表: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
我必须创建一个包含此条形图的字符串。 我必须创建一个 for 循环来比较列表 x_label 和 l,并且当 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.