看板 Python 關於我們 聯絡資訊
※ 引述《kadodo (想辦法突破)》之銘言: : s=map(lambda x : set(x), target.values()) : print(reduce(lambda x,y: x.intersection(y), s)) : 以上這樣OK 有PRINT出正確結果 : s=map(lambda x : set(x), target.values()) : var_a = reduce(lambda x,y: x.intersection(y), s) : print(var_a) : 換成以上三行,想用一個變數去接 就會得到以下錯誤 : var_a = reduce(lambda x,y: x.intersection(y), s) : 錯誤訊息 : TypeError: reduce() of empty sequence with no initial value. 為此特地去下載3.2.2後我大概知道問題在那了.. 你的寫法應該是 s=map(lambda x : set(x), target.values()) print(reduce(lambda x,y: x.intersection(y), s)) var_a = reduce(lambda x,y: x.intersection(y), s) 在python3中map的return是iterator iterator介面的特點是"只能用一次" 因此當你在第一個reduce用盡了s後 對第二個reduce而言s已經是空的iterator 所以會出現Error -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.217.2
kadodo:的確就如你所說 不能用兩次 我先存起來 再印出來是可以的 02/21 15:31