当列表的长度未知时,汇总Python列表中的前2个元素

MyC*_*rta 0 python arrays sum list conditional-statements

我正在编写来自codingbat.com的以下Python列表练习:

给定一个int数组,返回数组中前两个元素的总和.如果数组长度小于2,则只需总结存在的元素,如果数组长度为0,则返回0.示例:

sum2([1, 2, 3]) ? 3 

sum2([1, 1]) ? 2

sum2([1, 1, 1, 1]) ? 2
Run Code Online (Sandbox Code Playgroud)

我的解决方案有效:

def sum2(nums):
  if len(nums)>=2:
    return nums[0] + nums[1]
  elif len(nums)==1:
    return nums[0]
  return 0
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有任何方法可以用更少的条件语句来解决问题.

Rom*_*huk 7

有.解决方案的两个要素 - 内置函数sum和列表的切片:

>>> sum([1,2,3][:2])
3
>>> sum([1,1,1,1][:2])
2
>>> sum([1,1][:2])
2
>>> sum([1][:2])
1
>>> sum([][:2])
0
Run Code Online (Sandbox Code Playgroud)

  • @MyCarta确保您有时间查看当时弹出的所有答案 (2认同)