1

我正在codingbat.com 上进行一些练习。我坚持的练习是这样的:

“给定一个整数数组,如果 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
4

6 回答 6

5

您的解决方案实际上会起作用。不过这里有一个稍微好一点的:

def first_last6(nums):
    return nums[0] == 6 or nums[-1] == 6
于 2013-10-29T03:01:54.220 回答
3

nums[-1]给你最后一个元素

于 2013-10-29T03:02:46.667 回答
1

更新:阅读以下评论后,6 == llist[0] or 6 == llist[-1]将比创建元组更有效。

只需这样做6 in (llist[0],llist[-1]),您不需要为此编写函数。

于 2013-10-29T03:00:03.147 回答
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
于 2013-10-29T03:06:39.867 回答
0

在 Python3 中,您也可以像这样获取第一个和最后一个。ValueError如果 nums 中只有一个项目,则抛出A

def first_last6(nums):
    first, *middle, last = nums
    return first == 6 or last == 6
于 2013-10-29T03:17:02.353 回答
0
L[0]==6 or L[-1]==6

L[0]检查0第-th 索引处的元素,即第一个元素
L[-1]检查-1第-th 索引处的元素,即最后一个元素。请注意,这相当于检查L[len(L)-1]

如果你想让它变得更好和可扩展,你可以考虑这样做:

CHECK_INDICES = (0,-1)
any(L[i]==6 for i in CHECK_INDICES)
于 2013-10-29T03:03:13.400 回答