簡體   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