如何使用while循环迭代字典中的项?

2024-06-27 20:53:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何使用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)

Tags: infoidfordate字典方式usernamepassword
3条回答

如果访问while循环,则不能使用while循环对dict进行迭代,因为dict元素是无序的,并且在while循环中,只能通过索引访问str list tuples之类的iterable,而dict没有索引。我希望这能澄清你的问题

可以使用iternext循环while来迭代字典中的项。这与for循环在任何iterable上的后台执行迭代的过程几乎相同

代码:

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

这不是我所做的完美解决方案,但它在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

相关问题 更多 >