2024-09-29 23:24:42 发布
网友
我有一个列表a=['abc','cdv','fasdf'],还有一个常量n,它表示每个元素打印两次的时间量。你知道吗
a=['abc','cdv','fasdf']
n
例如,n=2应该返回a=['abc','abc','cdv','cdv'];或者n=4将返回a=['abc','abc','cdv','cdv','fasdf','fasdf','abc','abc']。你知道吗
n=2
a=['abc','abc','cdv','cdv']
n=4
a=['abc','abc','cdv','cdv','fasdf','fasdf','abc','abc']
下面是使用itertools.chain和生成器理解的一种方法:
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
下面是使用
itertools.chain
和生成器理解的一种方法:如果n大于列表的长度,则需要回收元素。处理这个问题的一个简单方法是根据需要多次复制数组。你知道吗
我们可以迭代新的数组来构建新的数组
相关问题 更多 >
编程相关推荐