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