Ответный персонаж заставляя его пропустить первую часть, вы можете увидеть разница с помощью repr
>>> print ",".join(array)
,monkey,pig
>>> print repr(",".join(array))
'dog\r,monkey,pig'
map
использование и strip
, чтобы удалить символ возврата
>>> array=['dog\r', 'monkey', 'pig']
>>> ",".join(map(str.strip,array))
Выход
'dog,monkey,pig'
Обратите внимание, что это немного лучше использовать map
, а не понимания раздеться символов.В timeit
результатах
$ python -m timeit "','.join(s.strip() for s in ['dog\r', 'monkey', 'pig'])"
1000000 loops, best of 3: 1.18 usec per loop
$ python -m timeit "','.join(map(str.strip,['dog\r', 'monkey', 'pig']))"
1000000 loops, best of 3: 0.647 usec per loop
Использование map
против постижений обсуждаются здесь.
Самый популярный (и принял ответ) заключение цитируется here:
карта может быть микроскопически быстрее в некоторых случаях (когда вы не делаете лямбда для этой цели, но с использованием та же самая функция на карте и listcomp).
Простой: просто снимите возврат каретки. –
Проблема в том, что этот новый массив создается при расщеплении вывода, а python добавляет/r к последней строке в массиве. Любой способ предотвратить это автоматически? – ign699
Python не делает этого, он не просто добавляет символы '\ r' без причины. Можете ли вы показать нам, как вы получили вход в первую очередь? –