在 python 中的列表中查找所有 None 项的索引
find indexes of all None items in a list in python
我有一个字符串列表,其中一些是 None。
我想获得 None.
的所有索引的新列表
list = ['a', 'b', None, 'c' ,None, 'd']
使用函数索引
n = list.index(None)
只会return第一次出现,n=2,而我想看n=[2,4]。
谢谢。
尝试 enumerate
:
l=[i for i,v in enumerate(list) if v == None]
或range
:
l=[i for i in range(len(list)) if list[i] == None]
两种情况:
print(l)
是:
[2,4]
重要说明: 将变量命名为现有的方法名称是不好的,它会覆盖它,(现在是 list
),所以我更喜欢它作为l
(或其他)
我推荐第一个示例,因为 enumerate
简单、高效。
更快的方式。在长列表的情况下非常有用。
list = ['a', 'b', None, 'c' ,None, 'd']
import numpy as np
print(np.where(np.array(list) == None)[0])
输出:
[2 4]
如果您需要索引列表:
print(np.where(np.array(list) == None)[0].tolist())
>>> [2, 4]
这里有些不同,但它不使用列表理解:
>>> l = ['a', 'b', None, 'c' ,None, 'd']
>>> out = []
>>> for _ in range(l.count(None)):
out.append(l.index(None))
l[l.index(None)] = "w"
>>> out
[2, 4]
>>>
我有一个字符串列表,其中一些是 None。 我想获得 None.
的所有索引的新列表list = ['a', 'b', None, 'c' ,None, 'd']
使用函数索引
n = list.index(None)
只会return第一次出现,n=2,而我想看n=[2,4]。 谢谢。
尝试 enumerate
:
l=[i for i,v in enumerate(list) if v == None]
或range
:
l=[i for i in range(len(list)) if list[i] == None]
两种情况:
print(l)
是:
[2,4]
重要说明: 将变量命名为现有的方法名称是不好的,它会覆盖它,(现在是 list
),所以我更喜欢它作为l
(或其他)
我推荐第一个示例,因为 enumerate
简单、高效。
更快的方式。在长列表的情况下非常有用。
list = ['a', 'b', None, 'c' ,None, 'd']
import numpy as np
print(np.where(np.array(list) == None)[0])
输出:
[2 4]
如果您需要索引列表:
print(np.where(np.array(list) == None)[0].tolist())
>>> [2, 4]
这里有些不同,但它不使用列表理解:
>>> l = ['a', 'b', None, 'c' ,None, 'd']
>>> out = []
>>> for _ in range(l.count(None)):
out.append(l.index(None))
l[l.index(None)] = "w"
>>> out
[2, 4]
>>>