Вместо того, чтобы писать разделитель после каждого элемента и пытаться избежать написания последнего, напишите разделитель перед каждым элементом и избегайте написания first one.
with open ('hotel.txt', 'w') as file:
for i in list:
delim = ""
for j in i:
file.write(delim + j)
delim = ":"
file.write('\n')
Другой подход заключается в том, чтобы исключить последний элемент из цикла и записать его отдельно:
with open ('hotel.txt', 'w') as file:
for i in list:
for j in i[:-1]:
file.write(j + ":")
file.write(list[-1] + '\n')
Но при этом предполагается, что в списке всегда есть хотя бы один элемент (пустые списки получат ошибкуна list[-1]
).Вы можете избежать этого с помощью оператора if
, но вы по-прежнему делаете дополнительную копию большей части списка ... вы можете использовать itertools.islice
, чтобы избежать этого, но затем вы перетаскиваете весь список.Во всяком случае, я думаю, что первый способ проще.