Python - объединить строку к себе, несколько раз - PullRequest
4 голосов
/ 01 июля 2011

Я хочу присоединиться к строкам my_string = "I am good." такой, что он должен печатать ту же my_string 3 раза, как в my_string*3 с пробелом между каждым полным предложением. Как мне это сделать? что-то вроде str.join(' ',my_string*3)?

Я знаю, что это основной вопрос, но я хочу знать это.

Заранее спасибо, Отжимают

Ответы [ 5 ]

14 голосов
/ 01 июля 2011

Ты довольно близко.Попробуйте это:

>>> my_string = "I am good."
>>> " ".join([my_string]*3)
'I am good. I am good. I am good.'

Вам нужно [my_string]*3 вместо my_string*3, потому что вам нужен список, содержащий три строки (которые затем могут быть объединены) вместо одной большой строки, содержащей сообщение три

1007 * Кроме того, " ".join(a) является сокращением для str.join(" ", a).
1 голос
/ 01 июля 2011

" ".join([my_string for i in range(3)]

1 голос
/ 01 июля 2011

Это должно работать:

" ".join((my_string,) * 3)
0 голосов
/ 25 июня 2019

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

import time

def forLoop(s):
  start = time.time()
  z = ""
  for i in range(ITERS):
    z += s
  return time.time()-start

def listJoin(s):
  start = time.time()
  "".join([s]*ITERS)
  return time.time()-start

def strMultiply(s):
    start = time.time()
    s*ITERS
    return time.time()-start

ITERS = 10000
my_string = "I am good."
a, b, c = 0, 0, 0
for i in range(ITERS):
    a += forLoop(my_string)
    b += listJoin(my_string)
    c += strMultiply(my_string)

print("For loop:", a)
print("List join:", b)
print("String multiplication:", c)

Вывод:

For loop: 5.720043182373047
List join: 0.8931441307067871
String multiplication: 0.025591611862182617
0 голосов
/ 01 июля 2011

Или вы можете просто воспользоваться тем, что умножение строки объединяет ее копии: добавить пробел в конец строки и умножить без использования join.

>>> my_string = "I am good."
>>> (my_string+' ')*3
'I am good. I am good. I am good. '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...