在集合中搜索
回答
使用lists
或tuples
如果您對索引感興趣,sets
不保留任何順序。
從Docs:
作爲一個無序集合,套不記錄元素位置或 順序插入。因此,集合不支持索引,切片或其他序列行爲。
或者可能是這樣的:
In [1]: se=set("foobarspampython")
In [2]: se
Out[2]: set(['a', 'b', 'f', 'h', 'm', 'n', 'o', 'p', 'r', 's', 't', 'y'])
In [3]: list(se).index("f") # in the original string the index is 0,
# but list(set) returns something different
Out[3]: 2
Python 3.x都有:
您可以在Python 3.x中使用OrderedDict()
,並使用您的項目爲一體的按鍵字典。 dict.keys()
在python 3.x中返回keysView
這與sets
類似,您可以對其執行所有設置操作。
>>> from collections import OrderedDict as od
>>> strs="foobarspampython"
>>> dic=od((x,"") for x in strs)
>>> dic.keys() #order is maintained
KeysView(OrderedDict([('f', ''), ('o', ''), ('b', ''), ('a', ''), ('r', ''),
('s', ''), ('p', ''), ('m', ''), ('y', ''), ('t', ''),
('h', ''), ('n', '')]))
>>> list(dic.keys()).index("f")
0
>>> list(dic.keys()).index("b")
2
>>> dic.keys() & {'a','b','c'} # even set operations work fine on it
{'a', 'b'}
和索引是完全隨機的你顯示! – SilentGhost
@SilentGhost是的,這是完全不可預知的順序是什麼。 –
@SilentGhost我認爲在python 3.x中可以使用'OrderedDict'。將這些項目用作空值的鍵。由於'dict.keys()'返回'keysView()。',我們可以在其上執行設置操作。 –
如果你需要同時訪問索引和快速查找的能力,你應該有一個看看(非標)blist package。它提供了一個快速的列表實現,它維護順序並因此允許快速訪問。它不會像set
那樣快,但是您將能夠檢索標記。
- 1. MongoDB在集合中搜索
- 2. 搜索集合中的Flex
- 3. 在c中搜索一個集合#
- 4. 在集合根中搜索兒童
- 5. 如何在LINQ Where子句中搜索集合的集合?
- 6. LINQ:在一個集合中搜索單個對象的集合
- 7. 部分搜索集合java
- 8. 搜索字符串集合
- 9. Java併發集合搜索
- 10. nhibernate搜索,更新集合
- 11. 搜索dll集合中的字符串
- 12. 遞歸搜索MongoDB中的集合
- 13. 列表集合中的搜索值
- 14. 高效搜索集合中的NSString
- 15. 從Redis集合中倒置搜索
- 16. 排名在C#集合上搜索
- 17. FlannBasedMatcher的集合索引/搜索參數
- 18. 搜索在MongoDB中收集
- 19. 使用每個字段的值集合在彈性搜索中搜索記錄。
- 20. 在組合框中搜索
- 21. 在聯合表中搜索
- 22. Hibernate搜索/ lucene搜索多個字段子集合
- 23. 在Eloquent Laravel5中搜索關係集合中的屬性值
- 24. 在C++中定義和搜索關聯訂單中的集合
- 25. 休眠lucene搜索集合和枚舉
- 26. NHibernate LINQ匹配搜索值的集合
- 27. 骨幹多集合全球搜索
- 28. 配置和搜索Solr啓動集合
- 29. 基於另一個搜索MongoDB集合
- 30. 搜索同等對象集合
一套中的元素不**有**索引! –
你爲什麼需要一個索引? – SilentGhost