创建越来越多的重复字符列表

create list of increasing number of repeated characters

我正在尝试在 Python

中创建这种输出
["k", "kk", "kkk", "kkkk", ...]
["rep", "reprep", "repreprep", ...]

这是一个包含 n 个元素的列表,由相同的字符(或一小组字符)重复 X 次组成,每个元素 X 增加 1。

我找不到一种方法来轻松地做到这一点,没有循环.. 谢谢,

这里有一个使用 itertools.count 的生成器,请记住 python 中 "multiplying" 个字符串的 属性 个数字,它们将在此处被复制和连接 nth 次,例如 "a"*3 == "aaa" :

import itertools
def genSeq(item):
    yield from (item*i for i in itertools.count())

这里有一个live example

repeating_value = "k" #Assign the value which do you want to be repeated
total_times=5 #how many times do you want
expected_list=[repeating_value*i for i in range(1,total_times+1)]
print(expected_list)

以下是迄今为止我根据 user3483203 的评论构建的最简单的,它消除了初始空值。

var = 'rep'
list = [var * i for i in range(1,x,1)]
print(list)
character = 'k'
_range = 5

output = [k*x for k in character for x in range(1, _range + 1)]
print(output)

我会将我的角色乘以范围内的指定数字,然后我将简单地在列表推导中遍历该范围。我们在范围末尾加 1 以获得完整范围。

这是你的输出:

['k', 'kk', 'kkk', 'kkkk', 'kkkkk']