Каждый раз, когда вы делаете player_parts = player_parts + parts
, вы объединяете два списка в новый список и присваиваете этот список player_parts
.Это очень неэффективно.Выполнение player_parts.extend(parts)
значительно улучшит производительность, поскольку оно добавляет содержимое в конец исходного списка player_parts
.
Однако, похоже, вы добавляете несколько пустых строк в player_parts
список.Итак, давайте посмотрим, есть ли лучший способ.
Похоже, у вас есть файл, подобный этому:
1,2,23,17,-1006,0.20;1,3,3,2258,-1308,0.72;
1,2,23,17,-1006,0.20;1,3,3,2258,-1308,0.72
1,2,23,17,-1006,0.20;1,3,3,2258,-1308,0.72;
И вы хотите этот результат:
['1,2,23,17,-1006,0.20', '1,3,3,2258,-1308,0.72', '1,2,23,17,-1006,0.20',
'1,3,3,2258,-1308,0.72', '1,2,23,17,-1006,0.20', '1,3,3,2258,-1308,0.72']
Итакэто должно сработать:
f = open('infile', 'r')
player_parts = []
for line in f: # For each line in the file
for segment in line.split(';'): # For each segment in the line
if segment.strip(): # If the segment has anything in it besides whitespace
player_parts.append(segment) # Add it to the end of the list
Если вы знакомы с пониманием, вы можете сделать это:
f = open('infile', 'r')
player_parts = []
for line in f:
player_parts.extend(segment for segment in line.split(';') if segment.strip())