Re: [問題] 多欄位去除重複元素方式?(求思路)

作者: adrianshum (Alien)   2019-02-26 13:18:53
類似
result={ c.tel : c for c in company_list}.values()
應該就行了。
{ ... } 這個是 dict comprehension. 裡面做的
簡單來說就是用你原本的 list,建一個 dict.
Key 是用 每個 element 的 tel field, Value 則
是element 本身(你的 company)
有重覆的key 的話,後來的會覆蓋掉之前的值。
.values() 就是從上面那個 dict 取得所有值。
作者: cutekid (可愛小孩子)   2019-02-26 13:27:00
推(Y)
作者: nini200 (200妮妮)   2019-02-27 04:14:00
覆蓋的意思是指 用個for迴圈去判tel有無重複 無則儲存嗎?然後發現奇怪的事 tel在dict的value 竟然無法比對 key可
作者: adrianshum (Alien)   2019-02-27 09:39:00
覆蓋的意思是指 comprehension 出現同key 的情況。建議先去讀一讀 Dict comprehension 的教學不需再加什麼for loop 比對了。
作者: nini200 (200妮妮)   2019-02-27 16:49:00
剛去官方爬文了大概知道用字典去除電話重複 但那語法一直寫不正確a={'公司':'123456','公司1':'123456','公司3':'123456'}語法要怎麼寫呢print({[(c,a.values()) for c in a ]}.values)我寫成這樣就報錯了
作者: adrianshum (Alien)   2019-02-27 23:08:00
{ v:k for (k,v) in a.items() } 之類?
作者: lemon651 (小明)   2019-02-28 16:04:00
如果你知道怎麼存成字典的話,為何不電話當成key就好了呢?如果有重複出現覆蓋或略過即可
作者: adrianshum (Alien)   2019-03-01 08:36:00
樓上:我做的正是你在說的事呀。
作者: nini200 (200妮妮)   2019-03-02 08:12:00
哇 解決 感謝以上各位前輩

Links booklink

Contact Us: admin [ a t ] ucptt.com