4

我想创建一个长度为 m 的元组,每个位置都有一个 1,除了位置 k 有一个 n。

例如:m=5, n=7, k=3 应该产生(1,1,1,7,1)(长度为 5,位置 3 为 7)

我怎样才能做到这一点?

4

3 回答 3

11
>>> m, n, k = 5, 7, 3
>>> tuple(n if i == k else 1 for i in range(m))
(1, 1, 1, 7, 1)
于 2012-06-28T16:57:00.240 回答
9

首先构造一个列表,如果你真的需要的话,把它变成一个元组:

def make_tuple(m, n, k):
    a = [1] * m
    a[k] = n
    return tuple(a)

例子:

>>> make_tuple(m=5, n=7, k=3)
(1, 1, 1, 7, 1)
于 2012-06-28T16:54:30.580 回答
8
(1,) * k + (n,) + (1,) * (m-k-1)
于 2012-06-28T17:44:51.363 回答