将for循环转换为while循环以解析行

时间:2015-05-19 14:11:29

标签: 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:]

1 个答案:

答案 0 :(得分:5)

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

for line in lines:
    key, value = line.strip().split(':', 1)
    user[key] = value

这可以简化为理解。

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[:]