0
A
回答
3
如果先加後綴作爲一個元組,你就可以進行排序,並無需如下重新計算它GROUPBY:
from itertools import groupby
from tldextract import extract
urls = ["www.example.com", "www.mytest.org", "www.test.com", "www.abc.com"]
urls = [(extract(url).suffix, url) for url in urls]
for k, g in groupby(sorted(urls), key=lambda x: x[0]):
print k, list(g)
在這個例子中,你會得到:
0
根據如果您建立了所有提取足夠的列表一次,然後在索引列表中使用索引和組:
from itertools import groupby, count
from tldextract import extract
c1, c2 = count(), count()
lst = [extract(x).suffix for x in urls]
urls = sorted(urls, key=lambda _: lst[next(c1)])
grouped_urls = groupby(urls, key=lambda _: lst[next(c2)])
這樣做的缺點是,你會做O(1)
索引爲2n
次,加速會比邊際更多,如果名單上的總時間extract(x)
遠遠超過時間採取索引新的列表。
相關問題
- 1. 蟒蛇按鍵排序字典和按另一個鍵排序
- 2. 排序一次
- 3. 當按下一個鍵時,多次按下不同的按鍵?
- 4. 按值和鍵排序
- 5. 按出現次數排序外鍵(SQL)
- 6. 按一個鍵然後另一個鍵排序數組?
- 7. HierarchicalCollectionView:一次排序?
- 8. MySQL按多個列排序,同時按一個排序
- 9. 按鍵排序
- 10. 按同一個鍵排列數值總和
- 11. 按一定順序按多個鍵對數組排序
- 12. 如何MySQL選擇和按列排序並按另一個表中的另一個鍵排序
- 13. 一級鍵是按排序順序存儲,還是按SQL語句排序?
- 14. Couchbase/CouchDB按部分鍵和另一部分排序
- 15. 按鍵排序Cassandra
- 16. 按主鍵排序
- 17. Java按鍵聽衆按一次
- 18. Qt TableView只排序一次
- 19. 陣列基於基於另一個鍵值某些鍵值和排序再次在Javascript排序
- 20. 同時對一維數組和二維數組排序(按列)
- 21. 在一個CASE中按順序排列和不同類型
- 22. 計數和排序按次數
- 23. tableSorter限制(排序)一次一頁?
- 24. MongoDB的排序按鍵的總和
- 25. 按鍵和值排序字典?
- 26. 顯示和排序基於同一列
- 27. 過濾和排序在同一頁
- 28. 按ID排序,然後按同一節點中的時間戳排序
- 29. JQuery.tablesorter從同一個表排序兩次相同的列
- 30. 按層次結構排序?