if ステートメントの条件であるステートメントの評価順序を理解するのに苦労しています。
単語をWebページのリストにマップする、次のような辞書があるとします。
index = { WORD, [url1,url2,url3] }
このインデックスに挿入する場合、次の 2 つのケースがあります。
1) キー (WORD) はインデックスにまだ存在しません。リストを作成し、WORD を
マップのキーとして設定する必要があります。
2)キー(WORD)はすでにインデックスに存在します。辞書に既にあるリストに現在のURLを追加するだけです
私が期待したこと:
def update_index(word, url):
if word in index and not(url in index[word]):
index[word].append(url) # list already exists append to it
else:
index[word] = [url] # new list with url as a single element
ただし、これは単語ごとに 1 つの URL しか許可しません。
何がうまくいったか:
def update_index(word, url):
if word in index: # <- isnt having two consecutive if statements
# the same as an AND???
if not(url in index[word]):
index[word].append(url) # list already exists append to it
else:
index[word] = [url] # new list with url as a single element
これを解決するための助けをいただければ幸いです。