【发布时间】:2020-07-04 10:09:19
【问题描述】:
如果列表中缺少任何索引,我正在尝试适应 None。
mylist = [1,2,3,4,5,8,9]
在上面的列表中,我想在 6,7 和 10 时都适合
end result = [1,2,3,4,5,None,None,8,9,None]
在元素 5 之前我不会有任何缺失值。但在那之后,我可能会错过所有元素或少数元素。 我试图通过在丢失的元素中插入 None 来使我的列表长度为 10。 几个样本缺失元素:
1 - [1,2,3,4,5,6] , expected result - [1,2,3,4,5,6, None, None, None, None]
2 - [a,b,c,d,e,h,i ], expected result - [a,b,c,d,e,None,None,h,i]
注意:任何索引之间的差异都是 1。直到索引 5(e) 将获取所有值,所以我使用以下逻辑
逻辑——我用过距离——
distance = (-1 * (mylist[3]-mylist[4]))
distance = 1
index_missing_distance = (-1*(mylist[3] -mylist[5])) which is equal to 2 (i.e for the above sample 1 )
distance between mylist[3] - mylist[6] will be 3... so based on the index_missing_distance ill fill my None values in that index.
代码:
if len(mylist) < 7:
if index_missing_distance == 2:
mylist[7:1] = [None,None, None, None]
elif len(mylist) < 8:
do something
elif len(mylist) < 9:
.....
假设如果它是 3 则做另一个 if else。像这样,我将不得不根据缺少的值来拟合 None。我不得不写这么多 if 案例,这让我的代码变得复杂。在这方面需要一些帮助。我们可以使用类似while循环的东西吗?
提前致谢。
【问题讨论】:
-
为你添加了新的例子,请测试一下。
标签: python-3.x loops dataframe if-statement while-loop