2
我需要存儲某些子串的開始和結束索引。我需要在python中執行此操作。什麼是對C++向量對的python等價物?python中的成對向量
我需要存儲某些子串的開始和結束索引。我需要在python中執行此操作。什麼是對C++向量對的python等價物?python中的成對向量
我建議將其存儲在一個字典(哈希映射)
input = ['str1', 'str2', 'str3']
stored_as = {'str1': {'start': 1, 'end': 2}, 'str2': {'start': 0, 'end': 2}, 'str3': {'start': 1, 'end': 1}}
這給你一個更好的代表性。 如果你是緊張的空間,那麼你可以將其存儲爲以下任一:
stored_as = [(1,2), (0,2), (1,1)]
或
stored_as = [[1,2], [0,2], [1,1]]
如果使用slice
對象,你可以用它們來直接選擇子:
In [924]: al = [slice(0,3), slice(2,5), slice(5,10)]
In [925]: astr = 'this is a long enough string'
In [926]: [astr[s] for s in al]
Out[926]: ['thi', 'is ', 'is a ']
或者與元組的列表:
In [927]: at = [(0,3), (2,5), (5,10)]
In [928]: [astr[s[0]:s[1]] for s in at]
Out[928]: ['thi', 'is ', 'is a ']
它們甚至可以被命名爲元組。或列表的列表。
我們甚至可以隱藏與itemgetter
該片迭代:
In [933]: import operator
In [934]: f=operator.itemgetter(*al)
In [935]: f
Out[935]: operator.itemgetter(slice(0, 3, None), slice(2, 5, None), slice(5, 10, None))
In [936]: f(astr)
Out[936]: ('thi', 'is ', 'is a ')
片這份名單還可以包含標量指標:
In [945]: al = [0, slice(5,7), slice(10,14), -1]
In [946]: operator.itemgetter(*al)(astr)
Out[946]: ('t', 'is', 'long', 'g')
[Python中等同於C++ STL向量的可能的複製/名單容器](https://stackoverflow.com/questions/4637095/python-equivalent-for-c-stl-vector-list-containers) – idjaw
請訪問這裏[鏈接](https://docs.python.org/3/ library/stdtypes.html)...尋找列表和元組... **請培養一種習慣,找到你的答案自己先...搜索文檔,如果你正在學習一種新的編程語言** – Suparshva
這可能是有益的[鏈接](https://stackoverflow.com/documentation)...探索它 – Suparshva