带字典的循环功能是对新观察结果的怀疑吗?

我正在尝试创建一个可以将文本放入字典中的函数,以便随后将其视为数据框。字典所需的格式应类似于下面的第一个列表。

我尝试过的代码创建的事件数量是事件数量的两倍,并且 将所有观察值替换为最后一个key:value对或正确的文本,但将每个新迭代的数据放置在新行中,而不是将前几行中的新列。

DESIRED OUTPUT
[{'foo': '012', 'bar':'abc'}, 
 {'foo': '345', 'bar':'def'},
 {'foo': '678', 'bar':'ghi'}]

OUTPUT 1
[{'foo': '678', 'bar':'ghi'}, 
 {'foo': '678', 'bar':'ghi'},
 {'foo': '678', 'bar':'ghi'},
 {'foo': '678', 'bar':'ghi'},
 {'foo': '678', 'bar':'ghi'},
 {'foo': '678', 'bar':'ghi'}]

OUTPUT 2
[{'foo': '012'}, 
 {'foo': '345'},
 {'foo': '678'}, 
 {'bar': 'abc'},
 {'bar': 'def'}, 
 {'bar': 'ghi'}]

这就是我现在的位置。

如何构造循环或重写代码,以便以所需的格式创建字典输出?奖励指向任何知道如何在事件具有多个来源(“条形”键/值对)的情况下创建第二列的人。

events = soup.findAll("div", {"class": "industry"})
my_list=[]

def rowfiller(variable, title):
    for x in variable: 
        new_row = {}
        a = x.text.strip()
        new_row[title] = a
        my_list.append(new_row)

for event in events:
    numbers = event.find_all("span", class_="headlines")
    letters = event.find_all("a", class_="sources") 

    rowfiller(numbers, 'foo')
    rowfiller(letters, 'bar')

my_list
#pd.DataFrame(my_list)