Estinien 发表于 2021-7-21 10:32:40

关于python中的loop问题

1.给定一个数字列表,您可以计算一个包含每个元素与其后续元素之间差异的新列表。 例如,给定 ,差异列表将是 。 自然地,新列表比原始列表少一个元素。

编写一个函数 difference(numbers) 来计算参数 numbers 的差异列表。

测试:
assert difference() ==
assert difference() == [-1, 565, -565, 43, -42, 4, -2]

2.编写另一个函数 final_difference(numbers) 重复应用差异(数字)直到只剩下 1 个数字。 然后返回该号码。
测试:
assert final_difference() == -7
assert final_difference() == -13382

好兄弟请问下这两个题怎么写,困了好久了。

逃兵 发表于 2021-7-21 10:32:41

def difference(numbers):
    new_list = []
    length = len(numbers)
    for i in range(1,length):
      new_list.append(numbers-numbers)
    return new_list


def final_difference(numbers):
    new_list = []
    length = len(numbers)
    if length == 1:
      return numbers
    for i in range(1,length):
      new_list.append(numbers-numbers)
    return difference(new_list)

Twilight6 发表于 2021-7-21 10:58:57


参考代码:

#1
difference = lambda numbers: - numbers for i in range(len(numbers)-1)]

assert difference() ==
assert difference() == [-1, 565, -565, 43, -42, 4, -2]

#2
def final_difference(numbers):
    result = - numbers for i in range(len(numbers) - 1)]
    return final_difference(result) if len(result) != 1 else result

assert final_difference() == -7
assert final_difference() == -13382


页: [1]
查看完整版本: 关于python中的loop问题