这是我当前的片段:
l = ['i', 'b', 'c', 'a', '3', 'a', '7', 'a', '9', 'k', 'a', '66', 'k', 'd']
new_list = []
a = {}
for i in range(len(l)):
if 'a' == l[i]:
a['plus_line'] = l[i+1]
new_list.append(a)
print(new_list)
我期待像下面这样的输出:
[{'plus_line': '3'}, {'plus_line': '7'}, {'plus_line': '9'}, {'plus_line': '66'}]
但我得到:
[{'plus_line': '66'}, {'plus_line': '66'}, {'plus_line': '66'}, {'plus_line': '66'}]
我试图实现当 a 出现在列表中时,a 的下一项将是 dict 的值>.
请您参考如下方法:
你的问题是你正在改变名为 a 的 dict。 相反,您可以执行以下操作:
l = ['i', 'b', 'c', 'a', '3', 'a', '7', 'a', '9', 'k', 'a', '66', 'k', 'd']
new_list = []
for i in range(len(l)):
if 'a' == l[i]:
new_list.append({'plus_line': l[i+1]})
print(new_list)
这将创建一个新的 dict 而不是改变现有的。
