【发布时间】:2016-11-21 09:06:39
【问题描述】:
我试图在遍历列表时删除列表元素(数值)。我有两个例子。示例 1 有效,但示例 2 无效,即使两个示例使用相同的逻辑。
示例 1:工作
list1=["5","a","6","c","f","9","r"]
print(list1)
for i in list1:
if str.isnumeric(i):
list1.remove(i)
print(list1)
示例 2:不工作
list2=["12abc1","45asd"]
for items in list2:
item_list=list(items)
print(item_list)
for i in item_list:
if str.isnumeric(i):
item_list.remove(i)
print(item_list)
我通过使用 (for i in item_list[:]:) 解决了示例 2。但我无法理解为什么第二个示例首先不起作用的逻辑?
【问题讨论】:
-
您确定示例 1 工作正常吗?我说是因为方法 isnumeric() 没有参数。
-
它有效。 str.isnumeric() 可以带参数
标签: python-3.x