2017-03-07 92 views
-1

的功能被赋予一个列表,如果该列表的第一个和最后一个数字是相同的必须返回true。编码蝙蝠(Python的>列表-1> same_first_last

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

该函数返回“索引值出范围”。请帮助

+3

列表是否为空?除非列表像Willem所说的那样是空的,否则 –

+0

nums [-1]应该这样做。 – YOBA

+2

@YOBA:但它相当于'nums [len(nums)-1]'... –

回答

0

你可以修改:

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

return False 

,但我认为错误‘索引值超出范围’,可以将NUMS后在这个函数可能会列出空列表

+0

为什么你用'if'来返回'True/False'? –

+2

'return nums [0] == nums [-1]'相当于 –

+0

yes,return nus [0] == nums [-1] just ok – hankym

1

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

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]
0

首先,检查列表是否为空或不空。假设列表不是空的。该方法如下所示。

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

nums [-1]是从列表中获取最后一个元素的快捷方式。 nums [-n]语法获取倒数第n个元素。例如:

nums = [1,2,3,1,3] 
nums[-2] #returns 1 
nums[-3] #returns 3