我想创建一个长度为m的元组,每个位置都有一个1,除了位置k中的一个n。
例如:m = 5,n = 7,k = 3应该产生(1,1,1,7,1)
(长度为5,位置3为7)
我该怎么做?
答案 0 :(得分:8)
首先构建一个列表,然后将其转换为元组,如果你真的需要:
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 :(得分:7)
>>> m, n, k = 5, 7, 3
>>> tuple(n if i == k else 1 for i in range(m))
(1, 1, 1, 7, 1)
答案 2 :(得分:6)
(1,) * k + (n,) + (1,) * (m-k-1)