编码蝙蝠( Python > List-1 > same_first_last



列表给出了列表,如果列表的第一个数字和最后一个数字相同,则必须返回true。

def same_first_last(nums):
   if nums[0] == nums[len(nums) - 1]:
       return True
   else:
       return False

函数返回"索引值超出范围"。请帮助

问题是如何处理空列表的情况。这取决于您如何看待它:如果将一个空列表视为没有数字的数字,则可以说第一个和最后一个数字是相同的。在这种情况下,您可以写:

def same_first_last(nums):
    return not nums or nums[0] == nums[-1]

如果您考虑一个空列表不是具有相同的第一个和最后一个数字,则可以使用:

def same_first_last(nums):
    return bool(nums) and nums[0] == nums[-1]

您可以修改:

 if nums[0] == nums[-1]:
       return True
 return False

但我认为错误"索引值超出范围",可能 nums 此功能中的帖子可能空列表

首先,检查列表是否为空。假设列表不是空的。该方法看起来如下。

  def same_first_last(nums)
      return True if a[0]==a[-1] else False

nums [-1]是从列表中获取最后一个元素的快捷方式。NUMS [-n]语法获取nth-last元素。示例:

 nums = [1,2,3,1,3]
 nums[-2] #returns 1
 nums[-3] #returns 3
def same_first_last(nums):
   return ((not nums or nums[0] == nums[-1]) and len(nums) >= 1)

它的工作也不错

最新更新