在Python中高效地将字符串重复到特定长度的方法是什么?


在Python中,一种高效地将字符串重复到特定长度的方法是使用字符串乘法运算符(*)和字符串连接。以下是一些带有逐步说明的代码示例

使用字符串乘法运算符

示例

定义原始字符串和要重复到的所需长度。

通过使用整数除法 (//) 将所需长度除以字符串长度来计算需要重复字符串的次数。

使用字符串乘法运算符 (*) 将字符串乘以计算出的重复次数。

通过切片原始字符串(从开头到所需长度除以原始字符串长度的余数 (%))将任何剩余字符添加到重复字符串的末尾。

string = "foobar"
desired_length = 10
repeated_string = string * (desired_length // len(string)) + string[:desired_length % len(string)]
print(repeated_string)

输出

foobarfoob

使用while循环

示例

定义原始字符串和要重复到的所需长度。

创建一个空字符串变量来保存重复的字符串。

使用while循环将原始字符串追加到重复字符串变量,直到其长度等于或大于所需长度。

切片重复字符串以删除超过所需长度的任何额外字符。

string = "lorem"
desired_length = 10

repeated_string = ""

while len(repeated_string) < desired_length:
    repeated_string += string

repeated_string = repeated_string[:desired_length]

print(repeated_string)

输出

loremlorem

使用取模运算和join函数

示例

定义原始字符串和要重复到的所需长度。

创建一个列表推导式,使用取模运算符 (%) 来重复原始字符串的字符,当到达字符串末尾时循环回到字符串的开头。

使用join()函数将列表中的字符组合成单个字符串。

将生成的字符串赋给repeated_string变量。

string = "ipsum"
desired_length = 10

repeated_string = "".join([string[i % len(string)] for i in range(desired_length)])

print(repeated_string)

输出

ipsumipsum

以下是一些更详细的代码示例,说明如何在Python中高效地将字符串重复到特定长度

使用itertools.cycle

示例

导入itertools模块,该模块提供一个cycle()函数,可以无限重复迭代器。

定义原始字符串和要重复到的所需长度。

使用itertools.cycle()创建一个无限重复原始字符串的迭代器。

使用itertools.islice()将迭代器的长度限制为所需长度。

使用"".join()将切片的迭代器转换为字符串。

将生成的字符串赋给repeated_string变量。

import itertools
string = "Fooqux"
desired_length = 10
repeated_string = "".join(itertools.islice(itertools.cycle(string), desired_length))
print(repeated_string)

输出

FooquxFooq

使用字符串格式化

示例

定义原始字符串和要重复到的所需长度。

使用字符串乘法 (*) 将原始字符串重复必要的次数,以超过所需长度,加一。

使用字符串切片 ([:]) 将重复的字符串修剪到所需长度。

使用字符串格式化将修剪后的字符串左对齐 (<) 到所需长度的字段 ({}).

将生成的字符串赋给repeated_string变量。

string = "Sayonara"
desired_length = 12
repeated_string = "{:<{}}".format((string * (desired_length // len(string) + 1))[:desired_length], desired_length)
print(repeated_string)

输出

SayonaraSayo

使用递归

示例

定义原始字符串和要重复到的所需长度。

定义一个函数repeat_string(),它接受两个参数:字符串s和所需长度n。

如果字符串s的长度大于或等于所需长度n,则返回s最多到n的切片。

否则,使用s与自身连接作为新的字符串参数和n作为相同的所需长度参数递归调用repeat_string()。

将函数调用的结果赋给repeated_string变量。

打印repeated_string变量以显示结果字符串。

string = "Senorita"
desired_length = 15
def repeat_string(s, n):
    if len(s) >= n:
        return s[:n]
    else:
        return repeat_string(s + s, n)

repeated_string = repeat_string(string, desired_length)

print(repeated_string)

输出

SenoritaSenorit

更新于:2023年8月11日

861 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告