Python 将for循环转换为while循环以分析行
我编写了下面的for循环,将一些行解析为dict中的键和值。如何将其转换为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 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[:]