我开始阅读python文档。我结束了这句话:
在迭代集合时修改集合的代码收集可能很难正确。相反,它通常更多简单地循环遍历集合的副本或创建一个新收藏:
# Strategy: Iterate over a copy
for user, status in users.copy().items():
if status == 'inactive':
del users[user]
# Strategy: Create a new collection
active_users = {}
for user, status in users.items():
if status == 'active':
active_users[user] = status
我听不懂解决方案。此代码如何工作?我的意思是我有了使用一个变量迭代列表的想法,但是使用两个变量很难理解。来源:https://docs.python.org/3/tutorial/controlflow.html#for-statements
此代码同时遍历用户和状态:如果用户状态为“非活动”,程序将删除该用户在第二个for循环中,如果用户“处于活动状态”,则会将该用户添加到“活动用户”字典中;当您要同时循环浏览字典的键和值对时,必须使用dict.items( )方法,items()方法允许您同时遍历每个字典元素(或元组)的项目,这里的项目是用户和状态,这就是为什么还有两个迭代变量也被称为用户和状态的原因] >
简单示例:假设您有一本物理电话簿,并且想在其中查找朋友或家人。 Python中的等效项是: