Код вставляет |
между каждым символом, поскольку он передает str
в качестве аргумента join
. Метод str.join
принимает последовательность в качестве аргумента и возвращает str
, который является каждым элементом последовательности, отделенным экземпляром, который вызвал join
. Вы можете продемонстрировать это для себя, запустив '|'.join('foobarbaz')
.
. Вы можете начать с удаления этого приведения в str
:
for i in range(0,len(split_main_log)):
split_main_log[i] = str(split_main_log[i])
Это, вероятно, прервет вызов str.join
, поскольку вы Вы переводите значения в int
в родительском for
l oop. Вам нужно будет привести эти значения к str
после того, как вы закончите с арифметикой c, например:
for i in range(0, len(split_command_file)):
if (split_main_log[i][1] == split_command_file[i][3] and split_command_file[i][0] == 'sub'):
if split_main_log[i][2] >= split_command_file[i][1]:
split_main_log[i][2] = str(int(split_main_log[i][2]) - int(split_command_file[i][1]))
elif split_main_log[i][1] == split_command_file[i][3] and split_command_file[i][0] == 'add':
split_main_log[i][2] = str(int(split_main_log[i][2]) + int(split_command_file[i][1]))
Пожалуйста, предоставьте минимальный воспроизводимый образец, и я могу помочь больше. Это трудно отладить без входных файлов.