创建一个字典,显示列表 python 项之间的连接性

Tal*_*war 0 python for-loop list

我有一个清单:

['Title', 'Text', 'Title', 'Title', 'Text', 'Title', 'Text', 'List', 'Text', 'Title', 'Text', 'Text']
Run Code Online (Sandbox Code Playgroud)

我希望每个元素都连接到该元素之前的元素“Title”。例如,索引 1 处的文本连接到索引 0 处的标题,索引 2 处的标题不会连接到任何元素,因为它后面还有另一个标题. 索引 4 处的文本连接到标题 3,类似地,位置 10,11 处的文本将连接到索引 9 处的标题。

这是预期的输出:

{1:0,4:3,6:5,7:5,8:5,10:9,11:9}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

moz*_*way 7

您可以使用循环:

l = ['Title', 'Text', 'Title', 'Title', 'Text', 'Title', 'Text', 'List', 'Text', 'Title', 'Text', 'Text']

last = -1
out = {}
for i, v in enumerate(l):
    if v == 'Title':
        last = i
    else:
        out[i] = last
print(out)
Run Code Online (Sandbox Code Playgroud)

输出:{1: 0, 4: 3, 6: 5, 7: 5, 8: 5, 10: 9, 11: 9}