Re: [問題] Python List篩選-重複元素
各位再次好
非常感謝各位上篇的幫忙
我後來又嘗試了回應中M大所說的 資源重複的情形
我將List中的資料改成(id,value)這種狀態
list = [(0,1),(1,2),(2,1),(3,1),(4,0),(5,0),(6,3)]
然後再從中做分層篩選
第一層 篩選出相加=2的
第二層 篩選出剩下的資料,相加等於1的
第三層 剩餘的資料也保留
(已經用過的不能再用)
如果單純使用Combination
那就會發生重複的情形
像是 ((0,1),(2,1)) 選出來後 之後又有 ((0,1),(3,1))
所以我多加一些if去避免重複
以下是我目前寫的成果
https://ideone.com/OQyEFz
雖然達到了想要的結果
但是覺得實在很冗長
我又查了itertools的其他函數
但是好像找不到可以用於簡化目前程式的工具
因此想再次請教各位
有沒有辦法使其再簡化一點
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.114.31
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1464201141.A.7BA.html
→
05/26 04:36, , 1F
05/26 04:36, 1F
→
05/26 04:36, , 2F
05/26 04:36, 2F
推
05/26 05:25, , 3F
05/26 05:25, 3F
→
05/26 05:25, , 4F
05/26 05:25, 4F
謝謝
可是我覺得雖然單一個元素篩選起來很方便,用於兩個元素好像不太適合呢
我若找了2-i,我也分不清楚是哪一組(如果資料更多的情形)
序號是想讓他個別獨立
不過用counter先把個別value先分類好像也不錯 ,來改改看好了
推
05/26 12:02, , 5F
05/26 12:02, 5F
→
05/26 13:06, , 6F
05/26 13:06, 6F
→
05/26 13:07, , 7F
05/26 13:07, 7F
好的謝謝你
推
05/26 20:42, , 8F
05/26 20:42, 8F
id的順序不重要,先遇到就先配,如果(5,0)擺得比(4,0)還前面,那就會是1050
※ 編輯: dream0830 (123.195.114.31), 05/26/2016 21:11:00
推
05/26 21:13, , 9F
05/26 21:13, 9F
→
05/26 21:14, , 10F
05/26 21:14, 10F
→
05/26 21:15, , 11F
05/26 21:15, 11F
→
05/26 21:16, , 12F
05/26 21:16, 12F
推
05/26 21:25, , 13F
05/26 21:25, 13F
對耶 我想說去比我分出來的組確認有沒有分配過就好了,結果組成一對反而難比
用一個新的,這樣比較好比,讚讚~ 感謝想法~
※ 編輯: dream0830 (123.195.114.31), 05/26/2016 21:45:50
推
05/26 22:09, , 14F
05/26 22:09, 14F
→
05/26 22:10, , 15F
05/26 22:10, 15F
ok的啦 我容易鑽牛角尖 想了a就想不到b 感謝你提供新想法XD
※ 編輯: dream0830 (123.195.114.31), 05/27/2016 00:25:07
→
05/27 02:04, , 16F
05/27 02:04, 16F
→
05/27 02:05, , 17F
05/27 02:05, 17F
謝謝幫忙,我又查了一下defaultdict是什麼才弄懂你的寫法
另外想請問 我試著讓ID重複,想找出個別ID中最多的值
listA = [(0,1),(1,2),(1,3),(2,1),(2,2),(3,1),(4,0),(5,0),(6,3)]
我把原本的listA的ID 1跟2各增加一個 然後想找出listA裡面KEY最多的
我嘗試了defaultdict,寫這樣
result = defaultdict(int)
for id,num in listA:
result[id] += 1
for k, v in result.items():
print(k,v)
我這樣能獲得每個ID各有幾組在裡面
但是我希望能把最大值的ID篩出來 放到MaxList中,字典或list都可以
MaxList = {1,2} 或者 MaxList = [1,2] 因為ID為1跟2的各別都兩組所以最大
目前用了max,但是失敗(我想是後面我放錯了 我想max v,輸出k)
新手問題多 還煩請指教 m(_ _)m
※ 編輯: dream0830 (123.195.114.31), 05/28/2016 04:51:15
→
05/28 04:51, , 18F
05/28 04:51, 18F
→
05/28 05:04, , 19F
05/28 05:04, 19F
→
05/29 03:20, , 20F
05/29 03:20, 20F
Python 近期熱門文章
PTT數位生活區 即時熱門文章