以编程方式创建非文字python元组

时间:2012-06-28 16:52:40

标签: python tuples

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

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

我该怎么做?

3 个答案:

答案 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)