假设我有一个列表A = [None, None, None, None, None, None, 1, 2, 3, 4]
。截至目前,列表的大小为10.现在,我想删除一个特定元素1
,但同时我希望1
替换为None
和大小列表的保留。删除1
不应将列表大小更改为9。
答案 0 :(得分:2)
如果您只想删除第一个元素,可以执行此操作
A[A.index(1)] = None
但是,如果你想替换列表中的所有1
,你可以使用这个列表理解
A = [None if item == 1 else item for item in A]
如果您想进行现场更换,可以这样做(感谢@Jonas)
A[:] = [None if item == 1 else item for item in A]
您可以编写通用函数,例如
A, B = [None,None, None, None, None, None, 1, 1, 3, 4], [1, 1, 1]
def replace(input_list, element, replacement):
try:
input_list[input_list.index(element)] = None
except ValueError, e:
pass
return input_list
def replace_all(input_list, element, replacement):
input_list[:] = [replacement if item == element else item for item in input_list]
return input_list
print replace(A, 1, None)
print replace_all(B, 1, None)
<强>输出强>
[None, None, None, None, None, None, None, 1, 3, 4]
[None, None, None]
答案 1 :(得分:1)
如果您只知道该值,则会替换第一个事件:
A[A.index(1)] = None
如果您知道索引:
A[6] = None