创建越来越多的重复字符列表
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']
我正在尝试在 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']