我想创建一个长度为 m 的元组,每个位置都有一个 1,除了位置 k 有一个 n。
例如:m=5, n=7, k=3 应该产生(1,1,1,7,1)
(长度为 5,位置 3 为 7)
我怎样才能做到这一点?
>>> m, n, k = 5, 7, 3
>>> tuple(n if i == k else 1 for i in range(m))
(1, 1, 1, 7, 1)
首先构造一个列表,如果你真的需要的话,把它变成一个元组:
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)
(1,) * k + (n,) + (1,) * (m-k-1)