2017-09-03 2 views
2

私は、1つのリスト内の各項目がpythonの.countを使って別のリストに現れる回数を計算しようとしています。これは私が持っているものです:.countを使って、1つのリスト内の各アイテムがPythonの別のリストに表示される回数を計算する方法は?

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3'] 
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8'] 

print(x1t.count(tentslist[0-11])) 

私が探している出力は3ですが、私は0になっています。これはなぜですか?これをどうやって解決するのですか?

ありがとうございます。

答えて

2

問題tentslist全体がx1tに含まれている時間をカウントすることを検討しています。確かに0です。

x1tの要素がtentslistに何回登録されていますか?そして、これはこれは、これが最初の各要素の出現箇所をカウントであり、後に集計結果を得るためにそれらを合計し、リスト内包

count = sum([x1t.count(x) for x in tentslist]) 

を使用してachiveでき

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3'] 
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8'] 

count = 0 
for x in x1t: 
    count += tentslist.count(x) 

print(count) 
2

ソリューションとなります

編集:コメントで示唆したように1はまた、完全にリストの内包を削除し、ちょうどこの

count = sum(x1t.count(x) for x in tentslist) 
使用することができます
+0

リストは無用である - 実際には複雑になります。角括弧を削除すると、結果は同じになります。つまり、 'sum'はリストでもあるジェネレータとジェネレータ式でもある* iterable *を取ります。 –

0

count()メソッドの構文は次のとおりです。 list.count(obj) objはリスト内でカウントされるオブジェクトです。

あなたのコードでは、NOT NULLのみが返されます:

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3'] 
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']] 

print(x1t.count(tentslist)) 

output: 1 

用途:

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3'] 
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8'] 
matches = set(x1t) & set(tentslist) 
match_count = len(matches) 
2

あなたは交差点がありますか?

len(set(x1t) & set(tentslist)) 

出力:3

0

合計(X1Tにおけるxのtentslist.count(x))を

関連する問題