删除列表中包含的子列表

时间:2017-11-29 18:37:06

标签: python python-3.x list nested-lists

我正在尝试删除列表中除整数之外的所有元素。我能够删除字符串和布尔值,但我无法删除给定下面代码的列表。

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)

2 个答案:

答案 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; }