Python初學者在這里。您如何解決字典 for 回圈中的比較串列和 int 錯誤,請幫助!
from random import *
passenger = list(range(1,51))
timelist = []
for i in range(1,51):
n = randint(15,51)
timelist.append(n)
passenger_time = {'passenger':passenger, 'timelist':timelist}
for x in passenger_time.values():
if 40 > x > 15:
print('passenger {} accepted'.format(y))
else:
print('not accepted')
uj5u.com熱心網友回復:
X 是一個串列。到目前為止,您正在將 [1, 2, 3, 4, 5] 與整數(在本例中為 40 和 15)進行比較。
您將必須訪問串列的每個元素。我不確定您要使用此代碼做什么,但是,我在下面放置的是訪問串列中每個鍵的示例。
for x in passenger_time.values():
y = passenger_time[x]
if 40 > y > 15:
print('passenger {} accepted'.format(y))
else:
print('not accepted')
uj5u.com熱心網友回復:
我懷疑你想要的是:
for pass, time in zip(passenger_times['passenger'], passenger_times['timelist']):
if 15 < time < 40:
print(f'passenger {pass} is accepted')
這會并行迭代兩個串列。它檢查其中一個串列中的值,然后從另一個串列中列印相應的值。
您的代碼只是迭代字典中的兩個值。第一次x包含整個passenger串列,第二次包含整個timelis串列。15 < x < 40當x是一個串列是沒有意義的。
uj5u.com熱心網友回復:
您能否再解釋一下您要做什么(您要比較什么)?
*并像這樣寫你的if:
if (x < 40) and (x > 15):
...
它可能在 python 中作業,就像你寫的那樣,但如果你要使用其他語言,你肯定會遇到問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/490263.html
下一篇:將串列列印成字母塊-Python
