Re: [問題] 如何將dict的values取set
再請教一下 如果我寫法並沒有先print出來 而是直接先存到var_a, 之後再印出來:
s=map(lambda x : set(x), target.values())
var_a = reduce(lambda x,y: x.intersection(y), s)
print(var_a)
這樣好像也是會有 TypeError
所以我不曉得我應該怎樣才可以用一個變數把它存起來
謝謝
※ 引述《mikapauli (cablin)》之銘言:
: ※ 引述《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: 220.132.36.238
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章