Python 在列表中插入值
如何在列表末尾有nan的列表中,在nan之前插入一个值Python 在列表中插入值,python,list,numpy,Python,List,Numpy,如何在列表末尾有nan的列表中,在nan之前插入一个值 random = [9,1,5, ... 7,6,3,2,5, nan, nan, nan, ...] random.append(8181) < somehow add function here 从末尾遍历列表以找到正确的位置,然后使用列表。插入: import math i = 0 while math.isnan(random[i - 1]): i -= 1 random.insert(i, 8181) 从末
random = [9,1,5, ... 7,6,3,2,5, nan, nan, nan, ...]
random.append(8181) < somehow add function here
从末尾遍历列表以找到正确的位置,然后使用
列表。插入:
import math
i = 0
while math.isnan(random[i - 1]):
i -= 1
random.insert(i, 8181)
从末尾遍历列表以找到正确的位置,然后使用列表。插入:
import math
i = 0
while math.isnan(random[i - 1]):
i -= 1
random.insert(i, 8181)
这可能是:
In [2067]: import numpy as np
In [2057]: pos = random.index(np.nan)
In [2062]: b = random[:]
In [2064]: b[pos:pos] = [8181]
In [2065]: b
Out[2065]: [9, 1, 5, 7, 6, 3, 2, 5, 8181, nan, nan, nan]
或
这可能是:
In [2067]: import numpy as np
In [2057]: pos = random.index(np.nan)
In [2062]: b = random[:]
In [2064]: b[pos:pos] = [8181]
In [2065]: b
Out[2065]: [9, 1, 5, 7, 6, 3, 2, 5, 8181, nan, nan, nan]
或
如果我们知道有多少个NaN
值,那么我们可以使用带有负数的insert
my_list.insert(-nan_count, 8181)
如果我们不知道计数,那么我们需要找出最后的位置
for i,v in enumerate(reversed(my_list)): # loop backwards
if v==v:
a.insert(len(a)-i, 8181) # found the first non NaN, insert just before this
break # only do it for the first item
如果我们知道有多少个NaN
值,那么我们可以使用带有负数的insert
my_list.insert(-nan_count, 8181)
如果我们不知道计数,那么我们需要找出最后的位置
for i,v in enumerate(reversed(my_list)): # loop backwards
if v==v:
a.insert(len(a)-i, 8181) # found the first non NaN, insert just before this
break # only do it for the first item
您可以结合使用list.index()
和list.insert()
来解决这个问题。如果在循环执行过程中nan的数量是静态的,请使用带有负索引的insert。@OlvinRoght我在这里没有看到任何循环。@code peedient,你认为他很少一行一行地写插入?@Code-peedient。你可以通过组合使用list.index()
和list.insert()
来解决这个问题。如果在循环执行过程中nan的数量是静态的,请使用带有负索引的insert。@OlvinRoght我在这里没有看到任何循环。@Code-peedient,你认为他几乎没有逐行编写的插入?@Code学徒。这可能适用于np.nan
,但可能不适用于float('nan')
。因为OP没有具体说明nan
,我冒昧地使用了np.nan
。问题没有标记为numpy,他们没有使用numpy数组…@wim请检查。答案是48票。它清楚地提到float('nan')可以被numpy
捕获。我认为您没有抓住要点。请尝试[float(“nan”)].index(np.nan)
以了解我的意思。这可能适用于np.nan
,但可能不适用于float('nan')
。因为OP没有具体说明nan
,我冒昧地使用了np.nan
。问题没有标记为numpy,他们没有使用numpy数组…@wim请检查。答案是48票。它清楚地提到float('nan')可以被numpy
捕获。我认为您没有抓住要点。试试[float(“nan”)].index(np.nan)
看看我的意思。