タプルのリストから分割表を作成しようとしています。リストは次のようになります。
lst = [('a', 'bag'), ('a', 'bag'), ('a', 'bag'), ('a', 'cat'), ('a', 'pen'), ('that', 'house'), ('my', 'car'), ('that', 'bag'), ('this', 'bag')]
たとえば、タプルが与えられた場合、次の('a', 'bag')
4 つのことを解決する必要があります。
a = lst.count(('a', 'bag'))
です3
。
b
はすべてのタプルの数でありtuple[0] == 'a' and tuple[1] != 'bag'
、それは 2:('a', 'cat'), ('a', 'pen')
です。
やってみると
lst.count(('a', not 'bag'))
0
となるはずですが、を取得します2
。-----1
c
はすべてのタプルの数ですtuple[0] != 'a' and tuple[1] == 'bag'
。この場合、('that', 'bag'), ('this', 'bag')
. でもやってみると
lst.count((not 'a', 'bag'))
0
となるはずですが、を取得します2
。-----2
d
はすべてのタプルの数で、tuple[0] !== 'a' and tuple[1] != 'bag
から簡単に取得できますlen(lst) - a
。
私の質問: or で論理ゲートを組み合わせる方法はありnot
ますlst.count((x, not y))
かlst.count((not x, y))
? そうでない場合は、複雑さが非常に高くつくため、ループなしでうまくいく方法b
を教えてください。c
2(N*N)
あなたの親切な助けは本当に感謝しています!