我正在尝试删除列表中除整数之外的所有元素。我能够删除字符串和布尔值,但我无法删除给定下面代码的列表。
messy_list = ["a", 2, 3, 1, False, [1, 2, 3]]
for idx, val in enumerate(messy_list):
if type(val) != int:
messy_list.pop(idx)
print(messy_list)
答案 0 :(得分:1)
功能方法怎么样?
>>> messy_list = ["a", 2, 3, 1, False, [1, 2, 3]]
>>> filter(lambda x: type(x)==int, messy_list)
[2, 3, 1]
答案 1 :(得分:0)
问题不在于子列表,而是您在重复修改原始列表时修改原始列表的事实。
改为复制副本:
.as-console-wrapper { max-height: 100% !important; top: 0; }