Добавить строку в конец каждого номера в списке
Вот что я имею сейчас:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
path = [i + ";1" for i in num]
print(path)
что дает мне это:
['[;1', '0;1', ',;1', ' ;1', '1;1', ',;1', ' ;1', '2;1', '];1']
но я хочу, чтобы это выглядело так:
0;1
1;1
2;1
Цель состоит в том, чтобы использовать это в скрипте кузнечика для создания новых путей, которые могут заменить существующие пути.
2 ответа
Проблема в том, что num = str(L1)
преобразует весь L1
список в строку, но вы хотите конвертировать только элементы L1
список в строку.
Попробуй это:
path = [str(i) + ";1" for i in range(0,3,1)]
for line in path:
print(line)
Выход:
0;1
1;1
2;1
Пытаясь следовать вашей логике, я думаю:
L1 = [str(i) for i in range(0,3,1)]
#=> ['0', '1', '2']
Итак, воедино:
L1 = [str(i) for i in list(range(0,3,1))]
L2 = ';1'
path = [i + L2 for i in L1 ]
print(path)
#=> ['0;1', '1;1', '2;1']
Затем вы можете перебирать элементы путей и распечатывать их по своему желанию.
Если вы попробовали print(num)
после второй строки вы бы поняли, что num = '[0, 1, 2]'
или num = 'range(0, 3)'
зависит от вашего компилятора, и это уже строка. Вот почему, когда вы пытались пройти черезnum
, у тебя есть все эти вещи.
Вместо этого попробуйте:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
for i in L1:
print(str(i) + L2)
или
path = [str(i) + L2 for i in L1]
если вы хотите поместить их в единый список.