Python For循环语句未读取if语句以继续下一次迭代

Python For循环语句未读取if语句以继续下一次迭代,python,for-loop,if-statement,twilio,continue,Python,For Loop,If Statement,Twilio,Continue,我有如下代码: for item in items: if item.data["position"] == '5': item.delete() continue elif item.data["lang"] == 'SPA': message_body = my_message_spa[item.data["position"]] else: message_body = my_message_eng

我有如下代码:

for item in items:

    if item.data["position"] == '5':
        item.delete() 
        continue
    elif item.data["lang"] == 'SPA':
        message_body = my_message_spa[item.data["position"]]
    else:
        message_body = my_message_eng[item.data["position"]] # English (default)

    message = client.messages.create(
        item.data["phone_number"],                    
        body=message_body,
        from_="xxxx"                           
    )
    # increment the position for this user
    item.data["position"]+=1
此代码用于向用户发送消息。 Items是包含用户电话号码、日期、语言和位置的词典列表。 位置是指它们在消息序列中的位置。
我想检查一个用户的位置,如果他们已经收到
5
消息,那么应该将其从列表中删除并继续下一个用户。如果用户的位置是
,则似乎比较的值不正确。您正在尝试将字符串“5”与整数5进行比较

if item.data["position"] == '5':
注意5左右的引号

例如:

print(1 == "1")
print(1 == 1)
第一个返回False,第二个返回True


在对列表进行迭代时,也不应该从列表中删除项目。请尝试创建副本或使用列表理解。

尝试从“5”中删除“”,5是整数,因此仅用5检查如果删除5周围的引号会发生什么情况?此外,您正在对dict对象调用
delete()
。您可能想使用
项。删除(项)
而不是抱歉,我对python相当陌生,并且得到了这个项目。谢谢你的帮助。你能详述你的最后一句话吗?为什么我不应该从列表中删除项目?或者你复制或使用列表理解是什么意思?我在网上找到的例子显示列表理解被用来迭代字符串。我的意思是你不能修改你正在迭代的东西的索引。for循环会认为列表中有x个项目,如果删除一个,它仍然会尝试访问那么多的项目。您可以并且只能编辑原始列表,这不会打乱for循环。或者,例如somelist=[x代表somelist中的x,如果不是x[“位置”]==5]
print(1 == "1")
print(1 == 1)