Python 将for循环转换为while循环以分析行

Python 将for循环转换为while循环以分析行,python,for-loop,while-loop,Python,For Loop,While Loop,我编写了下面的for循环,将一些行解析为dict中的键和值。如何将其转换为while循环 for i in range(len(lines)): string = lines[i].rstrip("\n") for j in range (len(string)): if string[j] == ':': user[string[:j]] = string[j+1:] 您不需要编写大部分代码来完成拆分:上的每一行并将结果存储在dict中

我编写了下面的for循环,将一些行解析为dict中的键和值。如何将其转换为while循环

for i in range(len(lines)):
    string = lines[i].rstrip("\n")
    for j in range (len(string)):
        if string[j] == ':':
            user[string[:j]] = string[j+1:]

您不需要编写大部分代码来完成拆分
上的每一行并将结果存储在dict中。只需在这些行上使用for循环和
.split()

这可以归结为一种理解

user = dict(line.strip().split(':', 1) for line in lines)

如果您真的想使用while循环,可以从列表中弹出值,直到它为空

while lines:
    key, value = lines.pop().strip().split(':', 1)
    user[key] = value
如果不想就地修改列表,请先制作一份副本并使用该副本

loop_lines = lines[:]

我们不是代码翻译服务。您不应该对范围内的i(len(line)):使用
,而只参考
行[i]
,而应该对行内的行使用
。将其转换为
while
循环将不如
for
循环清晰(您必须参考底层迭代器)。
loop_lines = lines[:]