以下のコードは、ペアと呼ばれるtuple
(それぞれが2つの要素)のリストを調べ、リスト内のすべての要素名のバンクを作成します。次に、tuple
に何番目の要素が何回現れたかを数え、いくつかの要素で除算します。私は、list
全体に対して要素あたりの平均相互作用数(別の要素を含むタプルに現れる時間)を求めます。pythonic dreams:タプルリスト内の要素の平均出現回数
def average(pairs):
intcount = 0
bank = []
for j,k in pairs:
if not j in bank:
bank.append(j)
if not k in bank:
bank.append(k)
if j in bank:
intcount += 1
if k in bank:
intcount += 1
output = intcount/len(bank)
return output
コードはうまく動作しますが、目障りです。より多くのpythonコードを書く方法を学ぼうとしていますが、私のコードをいくつかの行に集約しようとするたびに間違ってしまいます。私の最悪の試みの例は:
def average(pairs):
intcount = 0
bank = []
if not j or k in bank for j,k in pairs:
bank.append(if not j in bank else k if not k in bank else ' ' for j, k in interactions)
#then some kind of line streamlining how the intcount increments?
コードはそれほど悪くはありませんが、3番目と4番目のif文を単純に組み合わせることはできますが、出力変数を定義する理由はありません。 – Natecat
3番目と4番目のif文はどのように見えますか? intcountをインクリメントしてif文にjまたはkを入れると、kをそれ自身の文に入れない限り、jだけがカウントされます。 (申し訳ありませんが、コメント内でコードを動作させる方法を理解できませんでした....)// – Ouwan12
おそらく、演算子の優先順位を完全に理解できません。私の推測では、 '' jかk in bank'のようなことをしているのですか?Pythonは英語ではなく、英語のように扱うことはできません。このコードは、jが0でないか、またはkがバンクにあるかどうかをテストします.jまたはkのいずれかがバンクにない場合はテストしません。あなたは実際に '銀行のjか銀行のkの場合は' – Natecat