在python中两次打印和数组

2024-09-29 23:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表a=['abc','cdv','fasdf'],还有一个常量n,它表示每个元素打印两次的时间量。你知道吗

例如,n=2应该返回a=['abc','abc','cdv','cdv'];或者n=4将返回a=['abc','abc','cdv','cdv','fasdf','fasdf','abc','abc']。你知道吗


Tags: 元素列表时间abc常量cdvfasdf
2条回答

下面是使用itertools.chain和生成器理解的一种方法:

from itertools import chain

a = ['abc','cdv','fasdf']
n = 4

res = list(chain.from_iterable([a[i % len(a)]]*2 for i in range(n)))

# ['abc', 'abc', 'cdv', 'cdv', 'fasdf', 'fasdf', 'abc', 'abc']

如果n大于列表的长度,则需要回收元素。处理这个问题的一个简单方法是根据需要多次复制数组。你知道吗

import math
n_over = math.ceil(len(a)/n)
n_reps = 1 + n_over
a_long = a * n_reps

我们可以迭代新的数组来构建新的数组

a_rep = []
for e in a_long[0:n]:
    a_new += [e]*n 

相关问题 更多 >

    热门问题