对于这项练习,哪种方式更“Pythonic”?

时间:2015-11-07 14:25:31

标签: python

我在这里有一个任务:

  

给定一个int数组,返回数组中9的数字。

array_count9([1, 2, 9]) → 1
array_count9([1, 9, 9]) → 2
array_count9([1, 9, 9, 3, 9]) → 3

我有两个想法,一个是:

def array_count9(nums):
    count = 0
    list1 = [x for x in nums if x==9]
    return len(list1)

和另一个:

def array_count9(nums):
    count = 0
    for n in nums:
        if n==9:
            count +=1
    return count

但是我想知道在性能,清晰度方面,哪种方式更像Pythonic?非常感谢你

1 个答案:

答案 0 :(得分:6)

最Pythonic方式是在这种情况下使用内置函数count。试试这个:

def array_count9(nums):
  return nums.count(9)