我採取在用戶提供的輸入字符串數組,可以如下所示:跟蹤項的陣列與分隔符蟒
x=[100.0,150.0,200.0:300.0:10.0,300.0,350.0:400.0:10.0,500.0,600.0:700.0:10.0,800.0,900.0]
由於這些是用戶提供的列表,所述間隔片的順序[例如,200.0:300.0:10.0]可以變化,如同沒有切片的單個條目一樣。
然後我分裂的「:」分隔符,這樣我就可以從浮到字符串中使用numpy.r_隱蔽到後來我得到以下列表:
x_arr=[100.0,150.0,200.0,300.0,10.0,300.0,350.0,400.0,10.0,500.0,600.0,700.0,10.0,800.0,900.0]
我想保持賽道上的原指數「:」分隔符存在,以及這裏的「:」分隔符缺席這樣我就可以重建原始數組以下列方式的一系列花車:
np.r_[100.0, 150.0, slice(200.0,300.0,10.0), 300, slice(350.0,400.0,10.0), 500.0, slice(600,700,10),800,900]
問題是如何跟蹤指數從原始數組到新數組的變化支架方式。我很感激任何關於如何用隨機用戶提供的輸入來實現這一點的想法。
這是我想過接近的一種方式:
我劈在原數組「」地發現,缺少的元素
x_no_colon=re.split((','),x)
xh=[]
for ind in x_no_colon:
inds_wo_colon=re.findall(":",ind)
xh.append(inds_wo_colon)
使用上述其中:‘:’分隔符例如將返回以下:
xh=[[],[],[":",":"],[],[":",":"],[],[":",":"],[],[]]
然後我可以找出指數沒有冒號以下方式:
x_wo_colons = [item for item in range(len(xh)) if xh[item] == []]
這將返回:
x_wo_colons=[0,1,3,6,8,9]
然後我找到了指數:分隔符使用上的一組分裂 '' ':':
colon_arr=re.split('(:)',x)
prelim_x_with_colon=[item for item in range(len(colon_arr)) if colon_arr[item] == ':']
x_w_colon=[]
for i in prelim_x_with_colon:
if i == 1 and colon_arr[1] != ':':
x_w_colon.append(i)
elif i == 1 and colon_arr[1] == ':':
x_w_colon.append(i-1)
else:
x_w_colon_append(i-1)
隨着指數的其中一個列表冒號存在並且不存在,唯一要做的就是從列表w /冒號中刪除沒有冒號的索引。我在這裏找到的問題是,每次更改列表都很難獲得正確的索引。這可能是因爲我的方法很複雜,我使用兩個不同的數組作爲不同的列表。
問題是如何以一致的方式跟蹤從原始數組到索引的更改。我很感激任何關於如何用隨機用戶提供的輸入來實現這一點的想法。
在此先感謝!
@Moses Koledoye這裏是更新的問題 – user1332577