如何使用 while 循环遍历字典中的项目?

how to iterate over items in dictionary using while loop?

我知道如何使用 for 循环遍历字典中的项目。但我需要知道如何使用 while 循环 遍历字典中的项目。这可能吗?

这是我用 for 循环尝试的方式。

user_info = {
    "username" : "Hansana123",
    "password" : "1234",
    "user_id" : 3456,
    "reg_date" : "Nov 19"
}


for values,keys in user_info.items():
    print(values, "=", keys)

如果访问 while 循环,则不能使用 while 循环迭代 dict,因为 dict 元素是无序的,并且在 while 循环中,您只能通过索引访问 str 列表元组等可迭代对象,而 dict 没有索引。我希望它能澄清你的问题。

这不是我做的完美解决方案,但它在 while 循环中

user_info = {
    "username" : "Hansana123",
    "password" : "1234",
    "user_id" : 3456,
    "reg_date" : "Nov 19"
}

i = 0
length = len(list(user_info.items()))
keys, values = list(user_info.keys()), list(user_info.values())

while i < length:
    print(values[i], "=", keys[i])
    i += 1

您可以使用 iternext 以及 while 循环来迭代字典的项目。这 几乎for 循环如何在后台对任何可迭代对象执行迭代的过程相同。

代码:

user_info = {
    "username" : "Hansana123",
    "password" : "1234",
    "user_id" : 3456,
    "reg_date" : "Nov 19"
}

print("Using for loop...")
for key, value in user_info.items():
    print(key, "=", value)

print()

print("Using while loop...")
it_dict = iter(user_info.items())
while key_value := next(it_dict, None):
    print(key_value[0], "=", key_value[1])

输出:

Using for loop...
username = Hansana123
password = 1234
user_id = 3456
reg_date = Nov 19

Using while loop...
username = Hansana123
password = 1234
user_id = 3456
reg_date = Nov 19