如何编写一个接受数字和 returns 三元组列表的函数 "triplets"?
How to write a function "triplets" that takes in a number and returns a list of triplets?
编写一个函数三元组,它接受一个数字 n 作为参数,returns 一个三元组列表,使得三元组的前两个元素之和等于使用 n 以下数字的第三个元素。请注意 (a, b, c) 和 (b, a, c) 代表相同的三元组。
三胞胎(5)
[(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)]
你能试试这个吗?
def write_triplets(n):
to_return = []
if n >= 2:
for i in range(2, n):
for j in range(1, i/2+1):
triplet = (j, i-j, i)
to_return.append(triplet)
return to_return
write_triplets(5)
输出:
# Result: [(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)] #
你可以通过列表理解来做到这一点:
def triplets(n):
return [ (a,c-a,c) for c in range(2,n) for a in range(1,c//2+1) ]
编写一个函数三元组,它接受一个数字 n 作为参数,returns 一个三元组列表,使得三元组的前两个元素之和等于使用 n 以下数字的第三个元素。请注意 (a, b, c) 和 (b, a, c) 代表相同的三元组。
三胞胎(5)
[(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)]
你能试试这个吗?
def write_triplets(n):
to_return = []
if n >= 2:
for i in range(2, n):
for j in range(1, i/2+1):
triplet = (j, i-j, i)
to_return.append(triplet)
return to_return
write_triplets(5)
输出:
# Result: [(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)] #
你可以通过列表理解来做到这一点:
def triplets(n):
return [ (a,c-a,c) for c in range(2,n) for a in range(1,c//2+1) ]