繁体   English   中英

如何迭代比较python中的两个列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM