我想創建一個字母串的字典,其中的關鍵是唯一的字母和值是指數的字母第一齣現。例如:word ='mississippi',正確答案應該是{'m':0,'i':1,'s':2,'p':8}Python語言詞典與if語句的理解,但if語句包含詞典本身
我試圖寫'pythonic'代碼:
dict = {word[i]:i for i in range(len(word)) if word[i] not in dict.keys()}
不過,我得到的是:{ 'I':10, 'M':0, 'p':9, 'S':6}, 這是因爲如果字典WASN當if語句被調用時,它不會被更新並且仍然是空的。
一個正常的for循環做了正確的事:
for i in range(len(word)):
if word[i] not in first_apperance_dict.keys():
dict[word[i]]=i
輸出:{ 'i' 的:1, 'M':0, 'P':8, 'S':2}
那麼,爲什麼呢?這個問題有沒有pythonic優雅的代碼?一般來說,我只能在列表/字典解釋中的if語句中加入「靜態」變量嗎?