根据位置从文本中获取某些项,for循环,python



我正在尝试复制类似于这里的字典:https://gist.github.com/anshoomehra/ead8925ea291e233a5aa2dcaa2dc61b2

这里使用的代码是

document = {}
# Create a loop to go through each section type and save only the 10-K section in the dictionary
for doc_type, doc_start, doc_end in zip(doc_types, doc_start_is, doc_end_is):
if doc_type == '10-K':
document[doc_type] = raw_10k[doc_start:doc_end]

我正在尝试创建一个for循环。我有一个类型和位置(项目文本开始/结束)的列表,如下所示:

zl = [[('Item1', 1263, 42004),
('Item2', 42026, 652819),
('Item3', 652841, 697154),
('Item4', 697176, 705235),
('Item5', 705257, 2378296)],
[('Item1', 1195, 21386),
('Item3', 21408, 268339),
('Other', 268361, 290688)],
[('Item1', 1195, 27776),
('Item2', 27798, 323951),
('Item5', 323973, 348032)]]

我的循环:

final = []
for text in listoftexts:  
for i in zl: 
document = {}
for doc_type, doc_start, doc_end in i:
if doc_type == 'Item2': 
document[doc_type] = text[doc_start:doc_end]
final.append(document)

问题是它似乎只正确地提取了第一个文本(doc_start = 42026, doc_end = 652819)。所有进一步的文本(final[2], final[3]…)都没有被正确提取,看起来是随机的。我不确定循环的哪一部分是错误的。

希望我完全理解你的问题对于这个代码片段:

final = []
for text in listoftexts:  
for i in zl: 
document = {}
for doc_type, doc_start, doc_end in i:
if doc_type == 'Item2': 
document[doc_type] = text[doc_start:doc_end]
final.append(document)

final.append(document)行加Tab,以便只在>key<"item2"在你的列表中,zl。

final = []
for text in listoftexts:  
for i in zl: 
document = {}
for doc_type, doc_start, doc_end in i:
if doc_type == 'Item2': 
document[doc_type] = text[doc_start:doc_end]
final.append(document)

使用此代码,您将只提取自"item2"在你的列表zl中只出现两次。

相关内容

  • 没有找到相关文章

最新更新