我正在编写codingbat.com上的一些练习。我坚持的练习就是:
“给定一个int数组,如果6显示为数组中的第一个或最后一个元素,则返回True。数组长度为1或更长。
first_last6([1, 2, 6]) → True
first_last6([6, 1, 2, 3]) → True
first_last6([13, 6, 1, 2, 3]) → False"
以下是我的回答。我知道这是不正确的,但我不确定我做错了什么。
def first_last6(nums):
if nums[0] == 6 or nums[len(nums)-1] == 6:
return True
else:
return False
答案 0 :(得分:5)
您的解决方案确实有效。这是一个稍微好一点的:
def first_last6(nums):
return nums[0] == 6 or nums[-1] == 6
答案 1 :(得分:3)
nums[-1]
为您提供最后一个元素
答案 2 :(得分:1)
更新:
阅读以下评论后,6 == llist[0] or 6 == llist[-1]
将比创建元组更有效。
只需做6 in (llist[0],llist[-1])
,你就不需要为此编写函数。
答案 3 :(得分:1)
在python中查找最后一个索引,你可以使用-1作为列表的索引。
你只需要更改nums [-1]而不是nums [len(nums)-1]
def first_last6(nums):
if nums[0] == 6 or nums[-1] == 6:
return True
else:
return False
答案 4 :(得分:0)
L[0]==6 or L[-1]==6
L[0]
检查0
个索引处的元素,即第一个元素
L[-1]
检查-1
个索引处的元素,即最后一个元素。请注意,这相当于检查L[len(L)-1]
如果你想让它变得更好和可扩展,你可以考虑这样做:
CHECK_INDICES = (0,-1)
any(L[i]==6 for i in CHECK_INDICES)
答案 5 :(得分:0)
在Python3中,您也可以像这样获得第一个和最后一个。如果nums中只有一个项目
,则会引发ValueError
def first_last6(nums):
first, *middle, last = nums
return first == 6 or last == 6