Skip to main content
 首页 » 编程设计

Python根据条件迭代列表

2025年05月04日15daizhj

这是我当前的片段:

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 而不是改变现有的。