假设我们想要一个包含n个0/1元素的列表,其中恰好有k个1。是否有一种比以下方法更简洁、更符合Python风格的一行式推导方式呢?
```python lst = [i for i in itertools.combinations(range(n), k)] lst = [[1 if j in indices else 0 for j in range(n)] for indices in lst] ```
```python lst = [i for i in itertools.combinations(range(n), k)] lst = [[1 if j in indices else 0 for j in range(n)] for indices in lst] ```
def random_include(n, k):
ret = []
to_include = set(random.sample([i for i in range(n)], k))
for i in range(n):
if i in to_include:
ret.append(1)
ret.append(0)
random.py
是一种确定性随机数生成器,因此不适合进行加密工作。这关乎于你是否在意所有序列是否具有完全相同的概率。 - Christian Aichinger