我認爲這有效。它只是在「父」行列表中的每個「父」行末尾添加一列「子」行。
customer_file = open('index_of_customers.txt', 'r') # you should of course do more try-except stuff in your script
database = [] # all data ends up here
for each_line in customer_file: # reads one line at a time
each_line = each_line.strip('\n') # removes newlines
each_line = each_line.split('\t') # split the line of text into a list. This should save any empty columns aswell
if each_line[0] == 'D': # if line starts with a single D
each_line.append([]) # add a list for the other lines at the end of the D line
database.append(each_line) # add a D line to the "database" as a list
else: # if line don't start with a single D
if len(database): # the first line is not a D line, so we need to check if the database is empty to avoid errors
database[-1][-1].append(each_line) # add the line to the last D line's list.
for each_D_line in database: # prints out the database in an ugly way
print(str(each_D_line[:-1])) # first the D lines
for each_other_line in each_D_line[-1]:
print('\t' + str(each_other_line)) # then each other line