0

どのチームの人々が承認するかを表す、4要素リストのリストであるパラメーターを持つ関数を作成しようとしています。インナー(4要素)リストの順番は['team1', 'team2', 'team3', 'team4']

人々は、少なくとも 1 つのチームに「YES」を投票し、残りの 3 つのチームに「NO」を投票します。「YES」はそれぞれ 1 票としてカウントされます。

出力は、元の順序と同じ順序で各チームの合計金額が「YES」のリストです。

例は次のとおりです。

選出([['YES', 'NO', 'NO', 'NO'],['NO', 'NO', 'NO', 'YES'], ['YES', 'NO','NO'] '、'いいえ']])

([2,0,0,1]) を返す

助けてください..私はpythonが初めてで、[1,0,0,0]のように各人の投票数を取得することしかできませんでしたが、各リストを追加して1つのリストを作成できませんでした。

助けていただければ幸いです。

4

2 に答える 2

1
vote1 = ['YES', 'NO', 'NO', 'NO']
vote2 = ['NO', 'NO', 'NO', 'YES']
vote3 = ['YES', 'NO','NO','NO']

votelist = [vote1, vote2, vote3]

def electing(votelist):
    return [votes.count("YES") for votes in zip(*votelist)]
于 2012-11-23T01:54:40.810 に答える
0

Python にはほとんどの言語のようにループがありませんfor。このため、この言語の新しいユーザーは少し混乱する可能性があります。このような場合 (ゼロから任意の長さまでカウントしたい場合)、次のrange関数を使用できます。

for i in range(4):
    ...

それは(おおよそ)次と同じです:

for i in [0,1,2,3]:
    ...

これを使用して、コードを定式化してみてください。これまでに試したことを示す質問がさらにある場合は、さらにサポートできる可能性があります。

PSあなたが望むことを行うためのより高度な方法については、リスト内包表記の概念と同様に、sumと組み込みを調べることをお勧めします。それらはあなたの仕事をワンライナーに減らすことができます...zip

于 2012-11-23T01:58:01.183 に答える