我正在使用 map 將輸入引數從 STDIN 傳遞給我的函式 dict_add,但是當我列印出我的字典時,它是空的。
有人可以告訴我我哪里出錯了嗎?
出于任何原因不這樣做,只是練習 python 代碼。
store = {}
def dict_add(n):
store[n] = store.get(n,0) 1
results = map(dict_add,input("Number: ").split())
print(store) # comes out empty
uj5u.com熱心網友回復:
map是一個迭代器,所以dict_add在你以某種方式迭代它之前實際上不會被呼叫。例子:
list(map(dict_add,input("Number: ").split()))
或者
for _ in map(dict_add,input("Number: ").split()):
pass
我并不是說這是實作您想要做的事情的最佳方式,但這就是您看到這種行為的原因。
uj5u.com熱心網友回復:
我不確定你為什么使用map,你可以傳遞值。
還.split()回傳一個陣列,我認為您想將輸入作為值傳遞
還 result variable is never used
store = {}
def dict_add(n):
global store
store[n] = store.get(n, 0) 1
dict_add(input("Number: "))
print(store) # {'1': 1}
你可以在回圈中做這樣的事情,所以它回傳一個更大的字典
store = {}
def dict_add(n):
global store
store[n] = store.get(n, 0) 1
for count in range(5):
dict_add(input("Number: "))
print(store) # {'1': 2, '2': 1, '3': 1, '4': 1}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312975.html
下一篇:將字典id字典轉換為合理的df
