Python|重复字符串直到 K
有时,在使用字符串时,我们可能会遇到这样一个用例,在这种情况下,我们需要将字符串重复到 K 的大小,即使最后一个字符串可能不完整,但必须随着字符串的大小变为 K 而停止。重复字符串K 次的问题,比这个问题相对简单。让我们讨论一下解决这个问题的方法。
方法 #1:使用列表切片和 //运算符
可以使用上述工具执行此任务。在此我们只是将字符串相乘直到它大于或等于 K,然后使用列表切片方法省略多余字符串的切片。
Python3
# Python3 code to demonstrate
# Repeat string till K
# using list slicing and // operator
# initializing string
test_string = "GeeksforGeeks"
# initializing K
K = 30
# printing original string
print("The original string : " + str(test_string))
# using list slicing and // operator
# Repeat string till K
res = (test_string * (K//len(test_string)+ 1))[:K]
# print result
print("String after performing repetition : " + res)
Python3
# Python3 code to demonstrate
# Repeat string till K
# using divmod() + list slicing
# initializing string
test_string = "GeeksforGeeks"
# initializing K
K = 30
# printing original string
print("The original string : " + str(test_string))
# using divmod() + list slicing
# Repeat string till K
div, mod = divmod(K, len(test_string))
res = test_string * div + test_string[:mod]
# print result
print("String after performing repetition : " + res)
输出 :
The original string : GeeksforGeeks
String after performing repeatition : GeeksforGeeksGeeksforGeeksGeek
方法#2:使用 divmod() + 列表切片
上述方法中应用的除法可以用 divmod函数代替,以降低 40% 的性能为代价,提高了代码的可读性。
Python3
# Python3 code to demonstrate
# Repeat string till K
# using divmod() + list slicing
# initializing string
test_string = "GeeksforGeeks"
# initializing K
K = 30
# printing original string
print("The original string : " + str(test_string))
# using divmod() + list slicing
# Repeat string till K
div, mod = divmod(K, len(test_string))
res = test_string * div + test_string[:mod]
# print result
print("String after performing repetition : " + res)
输出 :
The original string : GeeksforGeeks
String after performing repeatition : GeeksforGeeksGeeksforGeeksGeek