说我有两个数组:
a = [1, 1, 1] and
b = [0, 0]
我想将它们随机连接在一个单独的变量c中,直到达到所需的c长度。像这样:
N = 10
c = random_concatenating((a, b), N)
[1, 1, 1, 0, 0, 1, 1, 1, 0, 0]
答案 0 :(得分:0)
您可以使用itertools.cycle
将列表重复多次,然后将它们切成所需的列表
>>> from itertools import cycle, islice
>>> a = [1, 1, 1]
>>> b = [0, 0]
>>> N = 10
>>> list(islice(cycle(a+b), N))
[1, 1, 1, 0, 0, 1, 1, 1, 0, 0]
答案 1 :(得分:0)
详细版本:
import random
a = [1, 1, 1]
b = [0, 0]
N = 10
def random_concatenating(iterable, n):
rv = []
l = [*iterable]
print(l)
while len(rv) < n:
rv.extend(random.choice(l))
return rv[:n]
c = random_concatenating((a, b), N)
print(c)
打印(例如):
[1, 1, 1, 0, 0, 1, 1, 1, 1, 1]
答案 2 :(得分:-1)
这是一种方法。使用random.choice
import random
a = [1, 1, 1]
b = [0, 0]
N = 10
foo = a + b
c = []
for i in range(N):
c.append(random.choice(foo))
print(c)
输出:
[0, 1, 1, 1, 1, 0, 1, 1, 1, 1]
单行
c = [random.choice(foo) for i in range(N)]