Оптимизация покрытия строки в Python

У меня есть эта начальная строка.

'bananaappleorangestrawberryapplepear'

А также есть кортеж со строками:

('apple', 'plepe', 'leoran', 'lemon')

Мне нужна функция, чтобы из начальной строки и кортежа со строками я получил следующее:

'bananaxxxxxxxxxgestrawberryxxxxxxxar'

Я знаю, как это сделать это обязательно путем нахождения слова в начальной строке для каждого слова, а затем цикла по символу во всей начальной строке с замененными словами.

Но это не очень эффективно и некрасиво. Я подозреваю, что должен быть какой-то способ сделать это более элегантно, функционально, с помощью itertools или чего-то еще. Если вы знаете библиотеку Python, которая может делать это эффективно, дайте мне знать.

ОБНОВЛЕНИЕ : Джастин Пил указал на случай, который я не описал в своем первоначальном вопросе. Если слово «ааа» и «аааааа» находится в начальной строке, вывод должен выглядеть как «xxxxxx».B @ addbf1 , для этого должно быть простое преобразование, но я этого не вижу. public static String toBin (String info) {byte [] ...

Я хочу получить двоичный (011001 ..) из String, но вместо этого получаю [ B @ addbf1 , для этого должно быть простое преобразование, но Я его не вижу.

public static String toBin(String info){
  byte[] infoBin = null;
  try {
   infoBin = info.getBytes( "UTF-8" );
   System.out.println("infoBin: "+infoBin);
  }
  catch (Exception e){
   System.out.println(e.toString());
  }
  return infoBin.toString();
}

Здесь я получаю infoBin: [ B @ addbf1
и я хотел бы infoBin: 01001 ...

Приветствуем любую помощь, спасибо!

10
задан Nick 6 February 2013 в 21:24
поделиться