如下代码可以将列表lst中的字符串都去掉吗?如果不能请说明如何修改。 lst = [1, 2, '5', 36, 'a', '7', 6] for x in lst: if isinstance(x, str): lst.remove(x) print(lst)
时间: 2024-05-22 17:12:19 浏览: 114
去掉字符串中的某一字符
这段代码不能完全去掉列表lst中的字符串,因为在遍历列表时,如果删除其中的元素,会导致后续的遍历出现问题。例如,在遍历到'5'时,它会被删除,但是后面的元素会向前移动,导致后面的元素'7'没有被遍历到。
为了解决这个问题,可以使用列表推导式来创建一个新的列表,只包含列表lst中的非字符串元素。修改后的代码如下:
lst = [1, 2, '5', 36, 'a', '7', 6]
lst = [x for x in lst if not isinstance(x, str)]
print(lst)
阅读全文