gpt4 book ai didi

python - 如何迭代列表并创建子列表

转载 作者:行者123 更新时间:2023-12-01 00:42:06 25 4
gpt4 key购买 nike

我正在逐行迭代我制作的列表中的文本文件。文本文件相对较小。我想循环整个列表并创建子列表,如果有两个星号(在两行中)彼此相邻。

文本文件像这样用星号分隔各个部分。

Header
*
Section 1 Header:
Content
Content
Content
*
*
Header
*
Section 2 Header:
Content
Content
Content
*
*
TextFile_List = [line.strip() for line in open('TextFile.txt')]
for line in TextFile_List: line

output = []
for i in range(len(TextFile_List)): #Iterates through all the lines in the list
if TextFile_List[i]+TextFile_List[i+1]=="**": #If * new line * are consecutive #Create sublist?/ Do something
pass

当我运行代码时,我在这一行中收到错误

if TextFile_List[i]+TextFile_List[i+1]=="**":

我发现列表索引超出范围,我认为是在 i+1 部分。

理想情况下,我希望每个部分都有自己的列表。因此第 1 节标题、内容、内容、内容将是其自己的列表。

像这样,

List1 = ["Section 1 Header", "Content", "Content", "Content"]
List2 = ["Section 2 Header", "Content", "Content", "Content"]
etc...

最佳答案

您遇到了差一错误,当您到达列表末尾时,这将失败:TextFile_List[i+1]。试试这个:

for i in range(len(TextFile_List) - 1):

现在,对于第二部分:如果您对迭代索引有更多的控制,这会更简单,这是一个可能的解决方案:

i = 0
output = []
sublist = []

while i < len(TextFile_List) - 1:
line = TextFile_List[i]
next_line = TextFile_List[i+1]
if line == 'Header':
i += 2
elif line == '*' and next_line == '*':
output.append(sublist)
sublist = []
i += 2
else:
sublist.append(line)
i += 1

关于python - 如何迭代列表并创建子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57271068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com