0

皆さん、この過去の試験問題について助けが必要です。基本的に、オブジェクトの 2 つのリストが与えられ、最初のリストと 2 番目のリストの同じ位置に表示されるアイテムの数を見つけると仮定します。提供された例があります。

>>> commons(['a', 'b', 'c', 'd'], ['a', 'x', 'b', 'd'])
2
>>> commons(['a', 'b', 'c', 'd', 'e'], ['a', 'x', 'b', 'd'])
2

コードを書き出すのに苦労しています。私たちのクラスは python 3 を使用しています。これをどこから書き始めればよいかわかりません。これはプログラミング コースの 1 年目で、人生でプログラミングをしたことはありません。

4

3 に答える 3

3

より簡単な解決策は次のようになると思います。

def commons(L1,L2):
    return len([x for x in zip(L1,L2) if x[0]==x[1]])
于 2013-07-12T01:28:28.243 に答える
0

これはうまくいくようです:

def commons(l1, l2):
   return sum(1 for v1,v2 in map(None, l1,l2) if v1 == v2)
  • 注: ここで使用されているマップの縮退形式では、短いリストのすべての値に対して None が返されます (したがって、l1 と l2 が同じ長さでなくても機能します)。両方のリストがすべて値を持っていると仮定します (つまり、 、L1 と L2 には None が含まれていません。これは、一方のリストが他方よりも短い場合に誤検知になるためです。)
于 2013-08-02T01:51:30.077 に答える