Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีที่มีประสิทธิภาพในการทำซ้ำสตริงให้มีความยาวตามที่กำหนดใน Python คืออะไร?


หากคุณต้องการให้สตริงซ้ำกับอักขระ n ตัว ขั้นแรกให้ทำซ้ำทั้งสตริงเป็น n/len(s) ครั้ง และเพิ่มอักขระ n%len(s) ในตอนท้าย ตัวอย่างเช่น

def repeat_n(string, n):
    l = len(s)
    full_rep = n/l
       # Construct string with full repetitions
    ans = ''.join(string for i in xrange(full_rep))
    # add the string with remaining characters at the end.
    return ans + string[:n%l]
repeat_n('asdf', 10)

สิ่งนี้จะให้ผลลัพธ์:

'asdfasdfas'

คุณยังสามารถใช้ประโยชน์จากการดำเนินการ '*' บนสตริงเพื่อทำซ้ำสตริงได้ ตัวอย่างเช่น

def repeat_n(string_to_expand, n):
   return (string_to_expand * ((n/len(string_to_expand))+1))[:n]
repeat_n('asdf', 10)

สิ่งนี้จะให้ผลลัพธ์:

'asdfasdfas'