假設我有一個清單A = [None, None, None, None, None, None, 1, 2, 3, 4]
。到目前爲止,列表的大小是10.現在我想刪除一個特定的元素,說1
,但同時我希望1
應該被None
取代,並保留列表的大小。刪除1
不應列表的大小更改爲9刪除列表中的元素並在Python中保留列表的大小?
回答
如果你只想刪除第一個元素,你可以做到這一點
A[A.index(1)] = None
但是,如果你想更換所有1
S IN列表中,你可以,如果你想要做的就地更換使用此列表comprehenesion
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]
請注意,第二個陳述不適用於*,與第一個陳述(以及不適用於此問題的通常的「del」運算符)不同。爲了使第二個陳述*就位,你必須將左邊改爲「A [:]」(只是說出口,可能會引起混淆)。 –
@JonasWielicki謝謝男人:)更新了我的答案。 – thefourtheye
只有當列表** A **被另一個對象引用時,就地替換才值得額外的資源 – volcano
如果你只知道價值,這將取代第一發生:
A[A.index(1)] = None
如果您知道該指數:
A[6] = None
- 1. Python:在循環列表中刪除列表中的元素
- 2. 刪除元素,並從列表中刪除下列元素
- 3. Python從列表中的列表中刪除空元素
- 4. 的Python 2.7〜刪除列表中的冗餘的元素,但保留順序
- 5. 從列表中刪除重複項並保留列表
- 6. 從python列表中刪除元素
- 7. python-從列表中刪除元素
- 8. python如何從列表中刪除元素的排序列表?
- 9. python從列表中刪除基於其他列表的元素
- 10. 在保留順序的同時從包含不可保存元素的Python列表中刪除重複元素?
- 11. Python將列表中的元素替換爲另一個列表中的列表,並刪除其他列表
- 12. 在列表的列表中刪除的元素在C#
- 13. R - 洗牌保留元素大小的列表
- 14. Python - 刪除for循環中的列表元素並重新分配列表
- 15. 從列表中刪除列表中的一些元素在Python的
- 16. 如何從Python列表中刪除列表元素
- 17. 查找並從列表中刪除元素,同時保留後插入
- 18. 如何刪除列表中的列表中的元素?
- 19. 列表中沒有元素刪除列表中的jQuery中
- 20. 如何安全通過列表中刪除從列表中的元素在Python
- 21. 刪除列表中的特定元素
- 22. 刪除列表中的元素
- 23. 刪除列表中的元素R
- 24. 刪除綁定列表中的元素
- 25. 刪除列表中的元素
- 26. 刪除列表中的空(NA)元素
- 27. 動態刪除列表中的元素
- 28. 刪除列表中的重複元素
- 29. 從python3的列表中刪除元素
- 30. 刪除列表中的某些元素
只是..分配索引所需的值。 – user2864740