列表的結構元素的索引我有一個列表,看起來像這樣:獲取在Python
mylist = ['name','mem','g1','g2','g3','foo','bar','qux','zoo','name','mem','foo','bar','qux','zoo']
我們可以看到上面的字符串被分成兩個部分,由'name','mem'
界定什麼我想要做的是得到兩個列表,其中每個列表包含mylist中的foo...zoo
索引。 結果在此
firstpart_vals_id = [5,6,7,8]
secondpart_vals_id = [11,12,13,14]
我該如何在Python中實現?
mylist
中的所有內容都是固定的,但foo....zoo
的數量可能會有所不同,但foo....zoo
部分的長度和內容對於兩部分是相同的(對稱)。
更新:我嘗試使用正則表達式解決方案。
>>> from itertools import groupby
>>> import re
>>> mj = re.compile(r'^val(\d+)$')
>>> mylist = ['name','mem','g1','g2','g3','val1','val2','val3','val4','name','mem','val1','val2','val3','val4']
>>> [[x[0] for x in g] for k, g in groupby(enumerate(mylist), key= lambda x: mj.search(x[1].mj)) if k]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'str' object has no attribute 'mj'
你有15個字符串列表的結果。 – msvalkon
g1,g2,g3怎麼樣,你怎麼區分它們和fo,bar等? –
'g1,g2,g3'總是固定的。它永遠不會有任何其他的事情。 – pdubois