1

問題は、len(list) を使用せずにリスト内の要素をカウントすることです。

私のコード:

def countFruits(crops):
  count = 0
  for fruit in crops:
    count = count + fruit
  return count

エラー: 'int' と 'str'

これらは、プログラムを実行する必要があるテスト ケースと見なされます。

crops = ['apple', 'apple', 'orange', 'strawberry', 'banana','strawberry', 'apple']
count = countFruits(crops)
print count
7
4

6 に答える 6

1

単純に間違った式を置き換える必要があります: count=count+fruit

def countFruits(crops):
  count = 0
  for fruit in crops:
    count += 1
  return count

y の x の式、リスト y から x の方法オブジェクトを取得し、関数 enumerate(crops) を使用して数値を取得し、オブジェクトと数値を返します。他の使用方法:

countFruits = lambda x: x.index(x[-1])+1

しかし、最善の方法は len() を使用することで、名前を辞任できます:

countFruits = len
于 2013-05-30T02:46:47.010 に答える
1

再帰三項演算子の使用:

def count_elements(list_):
    return 1 + count_elements(list_[1:]) if list_ else 0

print(count_elements(['apple', 'apple', 'orange', 'strawberry']))

出力:

4
于 2013-05-30T02:47:35.250 に答える
0
def countFruits(crops):
    return max(enumerate(crops, 1))[0]
于 2013-05-30T03:49:41.507 に答える