Python: правильный способ построить строку, присоединив меньшую подстроку N раз - PullRequest
0 голосов
/ 27 сентября 2011

Какой правильный «питонический» способ сделать следующую операцию?

s = ""
for i in xrange(0, N):
    s += "0101"

например. в Perl это будет: $s = "0101" x $N

Ответы [ 2 ]

9 голосов
/ 27 сентября 2011

Почти так же, как Perl:

"0101" * N
2 голосов
/ 27 сентября 2011

Самый Pythonic путь будет

s = "0101" * N

Другие методы включают в себя:

  • использовать StringIO, который является файловым объектом для построения строк:

    from StringIO import StringIO
    
  • использовать "".join; это

    `"".join("0101" for i in xrange(N)`
    
  • используйте ваш алгоритм. В неоптимизированном мире это менее хорошо, потому что оно квадратично по длине струны. Я полагаю, что последние версии Python действительно оптимизируют это так, чтобы оно было линейным, но я не могу найти ссылку на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...