我正在使用bisect_right()在txt文件中進行搜索。 文本文件中的每一行都包含以下字符串「word1 word2(tab)number」。也就是說,兩個單詞由一個空白(word1和word2),一個選項卡和一個數字分隔。 我用帶readlines()的列表讀取文件。 我正在使用帶有參數「word1 word2」(word1(空白)word2)的bisect_right來查找列表中找到(子)字符串「word1 word2」的索引。 bisect_right似乎找到了正確的位置,它返回(子)字符串所在的實際索引而不是右側的索引。 如果(子)字符串(word1(空白)word2)存在於列表中,不應該bisect_right向右返回索引嗎?搜索一個子字符串可能是一個問題嗎?python 2.6 bisect_right返回索引而不是右側的索引(索引+ 1)
0
A
回答
1
使用bisect模塊的搜索返回「插入點」,而不是索引。插入點是位於之間的兩個值。它旨在像這樣使用s.insert(i, 'new value')
。
而不是插入點,您想要搜索序列中值的索引。在文檔中的例子來說明如何做到這一點:http://docs.python.org/library/bisect.html#searching-sorted-lists
當然,這一切只是作品,如果列表的串的二進制搜索之前進行排序,但你可能已經知道了:-)
相關問題
- 1. Mongodb 2.6索引錯誤 - 「索引太大而無法索引」
- 2. 返回枚舉而不是索引
- 3. listView.getSelectedItemPosition()返回索引-1
- 4. 索引返回-1 jquery
- 5. RethinkDB:獲取索引內的索引,而不是索引名稱
- 6. 返回索引
- 7. Javascript:不插入右側索引行表
- 8. 爲什麼這是索引掃描而不是索引搜索?
- 9. 加入索引(不是數據庫索引)的右表
- 10. Python索引索引尋找
- 11. Python Tkinter - Listbox自定義類返回索引,但沒有索引
- 12. 索引,索引,索引
- 13. 1維的索引或多個索引
- 14. MySQL不返回索引int
- 15. Python bisect:傳遞值而不是返回插入索引
- 16. 的Python:索引的左側和右側的分配
- 17. 算術索引轉換爲座標只是返回索引
- 18. Mongodb索引或不索引
- 19. 索引或不索引
- 20. preg_match_all只返回索引爲0的第一個數組,而不是索引爲1的第一個數組
- 21. java.lang.ArrayIndexOutOfBoundsException:length = 1;索引= -1
- 22. 斯芬克斯索引器返回1
- 23. 的Python:返回一個包含索引
- 24. 返回索引位置
- 25. 查找最長字符串的索引並返回該索引?
- 26. df.first_valid_index()返回引發KeyError的索引?
- 27. Solr的搜索,而索引
- 28. ListBox索引返回負值
- 29. 索引在python
- 30. 索引布爾索引(而不是數據框)
如果你真的只解析文本,使用'split()'和[相關字符串方法](http://docs.python.org/library/stdtypes.html#string-methods)可能是一個更強大的處理方法與事物 – brc