-1
我的目的是將兩個列表轉換爲字典格式並打印出年齡爲20歲的姓名。以下是我的代碼。我面臨的問題是,在我從用戶獲得輸入並傳遞給函數後,它不起作用。我可以分別打印參數整數和年齡 - 它工作正常。當它到達if函數時,它根本不打印名稱。我試圖硬編碼整數到20 - 它的作品,但這不是我想要的代碼。不明白爲什麼我的輸入不會影響Python 3
NAMES = ['Alice', 'Bob', 'Cathy', 'Dan', 'Ed', 'Frank','Gary', 'Helen', 'Irene', 'Jack', 'Kelly', 'Larry']
AGES = [20, 21, 18, 18, 19, 20, 20, 19, 19, 19, 22, 19]
list1 = {}
def getinput():
age=input('Please enter your age')
return age
def changedict():
for x in range(len(NAMES)):
list1[NAMES[x]]=AGES[x]
def get_names(integer):
for name, age in list1.items():
if age == integer:
print(name)
changedict()
para=getinput()
get_names(para)
如果上面的代碼有任何改進,就像更簡化的版本一樣,請評論一下。我也想更多地瞭解一下items
函數。有沒有其他方法可以在不使用items
的情況下通過字典進行掃描?
年齡(INT)是永遠等於輸入(串)。 Python不會在類型之間執行任何類型的隱式轉換。嘗試在'getinput()'中返回int(年齡)'。 –
你可以通過將你的兩個列表壓縮在一起來創建你的初始詞典: 'dict(zip(NAMES,AGES))' –