我有一個字符串列表foo
和另一個整數列表bar
,它在foo
中保留重要索引的軌道。基於另一個列表中的索引對列表進行迭代
例如:
foo = [{}.format(i) for i in range(1, 11)] # not necessarily of this format
bar = [0, 3, 5]
我想創建配方用於創建列表的列表,基於在bar
指數分裂foo
獲得每個列表。
預計輸出上面的例子:
[['1', '2', '3'], ['4', '5'], ['6', '7', '8', '9', '10']]
爲了實現這一點,我已經創建了下面的函數工作正常:
result = []
for index, value in enumerate(b):
if index == len(b) - 1:
result.append(a[value:])
elif index == 0 and value != 0:
result.append(a[0: value])
else:
result.append(a[value: b[index + 1]])
然而,我發現這個代碼高度非Python化,感謝我的C-Java背景。
我想知道更好的解決方案,這個問題(也許我們可以用itertools
莫名其妙)。
典型的切割問題。也許這有助於:http://stackoverflow.com/questions/509211/explain-pythons-slice-notation –
@JanZeiseweis謝謝你的參考,但它沒有太大的用途,這個特定的問題。 –
@schwobaseggl感謝您的注意。我將其標記爲重複 –