我编写了以下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:]
答案 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[:]