如果满足某些条件,我试图合并两个列表(在列表内)。如果满足某些条件,将两个列表与列表进行合并
一个例子:
li = [[18, 19, 20, 21, 22], [25, 26, 27], [59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69]]
li2 = [[15, 16, 17], [32, 33, 34, 35], [89, 90, 91], [95, 96, 97, 98]]
的条件是如果每个列表之间的差(或距离相当)小于7个单位,该列表将被合并。列表合并后,我想填写缺失的数字。
因此,预期的结果是如下:
li = [[18, 19, 20, 21, 22, 23, 24, 25, 26, 27], [59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69]]
li2 = [[15, 16, 17], [32, 33, 34, 35], [89, 90, 91, 92, 93, 94, 95, 96, 97, 98]]
这是我的工作当前代码:
new_li = []
for i in np.arange(len(li) - 1):
current_item, next_item = li[i], li[i+1]
if next_item[0] - current_item[-1] <= 7:
new_li.append(current_item + next_item)
else:
new_li.append(next_item)
这给了我:
new_li = [[18, 19, 20, 21, 22, 25, 26, 27], [59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69]]
和应用程序躺在代码为li2
:
new_li2 = [[32, 33, 34, 35], [89, 90, 91], [89, 90, 91, 92, 93, 95, 96, 97, 98]]
之前,我甚至可以开始填补缺失值,我的代码是不正确,似乎无法得到正确的代码的最后一部分。任何帮助或提示,以改善我的代码非常感谢!
为什么要用'np.arange'因此,你可以如下改写解决? '范围'会更快,你不需要NumPy作为依赖。 – MSeifert